Hi,现在我们暂时不谈Passport

2016-01-29 12:54 14 1 收藏

Hi,现在我们暂时不谈Passport,Hi,现在我们暂时不谈Passport

【 tulaoshi.com - ASP.NET 】

Hi, 现在我们暂时不谈Passport
小气的神2002.02.16 Article Type: In-Depth 难度等级:6/9 版本:1.27 在我写了那篇Passport你的网站之后,我发现自己犯了一个错误,从一开始。也许当时只是想表达自己对Passport的喜爱和接触之后还算美好的虚荣感受。我想在当时陶醉时,肯定刻意忽略了其它的某种因素。不然当计划正式开始使用它时,不会发现它突然带有了某种不确定性,甚至退后到测试的机器上也不能工作了;多次再去做和对着文档去想了又想,开始有些惭愧,因为我发现那篇文档几乎毫无用处,这将是一次名不其实表述,那么对于一个技术人员来说,这种感受是痛伤的,同时对他来说也将是个教训。 不过Passport的重要性丝毫不亚于它的复杂和繁琐,无法预知Microsoft将如何改善这种长距离的集中验证所带来的不确定“刺耳音符”,但在未来可以看到的体系和应用中,避而不见Passport,也意味着今后你在MS平台上要冒更多的风险。那么对于“是否需要接触Passport?”、“现在是否需要学习了解Passport?”这样问题的答案都应该是慎重的“应该”,放弃观望的态度将是一个好的开始。我们可以在接触学习中等待3.0版本的Passport,不过在没有更好的Demo,没有我们需要的Help文档的一段时间里,现在我们暂时不谈MS的Passport。它依然复杂得超出我们的理解,我们只能一点点去尝试和了解,做那些我们力所能及的事。最后欢迎回到这个脆弱而迷幻的世界,它依然充满失落和期待。 下面将是一个Passport的实现(我猜是最小的一个框架),它的最初是Nathan Smith (nathan_y_smith@hotmail.com )示范性的一个dotNET β2的版本,调试时我进行了一些小的改动(不少改进吧,但主框架没动),并且添加了一个简单的测试前端。在我升级到dotNET 1.0后,重新测试了它,所以它需要的环境可能是:Windows 2000 Server, MS SQL 2000 SP2 (中文或英文),dotNET SDK 1.0 , VS.NET RTM,IIS 5.0 SP, IE6 2813 数据结构: 设计两个数据库:PassportSvr , PassportClient PassportSvr: PassportClient: 另外还有下面这些实现核心功能的存储过程: sp_registerUser sp_setUserInfo sp_setUserPassword sp_setUserStatus sp_purgeUser sp_setUserHomeService sp_validateUser sp_registerService sp_setServiceInfo sp_setServicePassword sp_setServiceStatus sp_purgeService sp_validateService 应用实现: 根据上面的数据结构实现了两个Web Services,一个作为整体的Services的管理接口,一个是提供给最终用户使用的Client Services接口。看得出来最终提供给用户使用的只有7个函数,当然开始时你可以在调试Services WebServices时测试一下RegisterService函数,它将建立一个Services,记下services_name和 services_password ,在实现Client的WebService的Global.cs中有这样应用: protected void Application_Start(Object sender, EventArgs e){ DataManager.InitManager(); Passport ppSvc = new Passport(); AppTicket = ppSvc.AuthenticateService("Passport","passport"); ppSvc=null;} 整个实现中有个与Passport相似的安全机制-Ticket,当用户通过验证之后获得一个AuthenticationTicket并产生一个Token,我认为这里是最有趣和最棒的部分,简单有效。 Ticket Structure public class AuthenticationTicket{ public AuthenticationTicket() { } public int Token; public int OwnerID; public double ExpirationDate; public double IssueDate; public string NickName; public string FirstName; public string LastName; } Token Generation Routine static private int GenerateToken(int systemID, string nickName, int passwordHash, double issueDate, double expirationDate){ int rtn; // our return value string s_token; // string concatenation of the objects // concatenate all of our values together. // note the use of hashing the password and the id, this // *should* help reduce the probability of attack s_token=systemID.GetHashCode().ToString() + nickName + passwordHash.GetHashCode().ToString() + issueDate.ToString() + expirationDate.ToString(); // get the hash of the concatenation and return it rtn=s_token.GetHashCode(); return rtn;} 好了解决了主要问题,后面的实现的就迎刃而解了,下面分别是两个Web Services暴露的功能函数。 public AuthenticationTicket AuthenticateServicepublic AuthenticationTicket AuthenticateUserpublic AuthenticationTicket CreateAccountpublic int Dis

来源:http://www.tulaoshi.com/n/20160129/1488052.html

延伸阅读
标签: 智能手机
圆润还是方正 在CES 2015上,黑莓没有拿出新设备,而是与美国运营商AT&T独家合作,发售全新设计的Passport。说是全新设计,其实就本质上还是同样的 Passport,在硬件配置上保持一致。同样是2.2GHz骁龙处理器和4.5英寸正方形屏幕以及标志性的实体全键盘。 就这么一看的话,要说重新设计后的Passport还真的没有太大太明显的...
标签: Java JAVA基础
国内不谈java--会有千万人跳出来和你争嘴的。越是如此,我越是不忍心不说出来,越是不不忍心看到在这个领域被国外的同行越拉越远--在硅谷的感受。 我是96年毕业的,正值java刚出,火气冲天之时。我当时是一名C++的狂热者,有着3年的C++经验。接触java也仅仅是在作毕业设计的时候用过,对java也算是有了基本了解,那...
标签: 智能手机
全键盘情怀依旧 近日,黑莓Passport银色特别版正式发布,该机正是媒体曝光的型号为“Osla”的神秘新机,只不过该产品正式上架名称并非此前猜测的Dallas,而是Passport银色特别版(Passport Silver Edition)。 在配置上,黑莓Passport银色特别版采用和初代Passport相同的配置,搭载2.2GHz高通骁龙801处理器,内存为3GB,内置32GB存...
标签: 智能手机
颜值有增无减 8月28日黑莓发布了最新的黑莓Passport银色版,黑莓Passport的硬件配置并没有做出改变,银色的机身在颜值方面真是有增无减,同时运行最新的BlackBerry10 OS,现在我们就来欣赏一下这款高颜值的黑莓Passport银色版。 黑莓Passport Silver Edition,则在外观上基本上很难看出与Passport本身有什么区别,只是机身的配色变成了银色...

经验教程

585

收藏

94

精华推荐

夏日搭配 HI.SUMMER

夏日搭配 HI.SUMMER

super_Q

新婚期间最好暂时避孕

新婚期间最好暂时避孕

jinjin995520

百度HI怎么加群  百度HI如何加群

百度HI怎么加群 百度HI如何加群

ok宠物爱好者

热门标签

ASP
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部