单一登录: Active Directory联合身份验证服务开发简介
多时间去考虑这些声明。只要继续使用 HttpContext.User.IsInRole 来检查组声明是否存在,将它们 当作应用程序角色来对待就可以了。这就是说,您也可以使用像 ASP.NET LoginView 这样的控件,这个 控件的输出就是基于通过 HttpContext.User 属性所发现的各个角色。
如果您想读取自定义声明的值,就需要编写几行新代码了。下面这段代码就是要寻找一个名为 Title 的声明: string GetTitle() { SingleSignOnIdentity id = (SingleSignOnIdentity)User.Identity; SecurityPropertyCollection c = id.SecurityPropertyCollection.GetCustomProperties("Title"); return (1 == c.Count) ? c[0].Value : string.Empty; } 在所传输的数据中,有一部分是很有意思的,这就是在用户本地域对其进行身份验证时所使用的原始 方法。实际上,ADFS 支持四种身份验证技术:Windows 集成、SSL 客户端证书、基本身份验证以及 ASP.NET Forms 身份验证。您可以通过 SingleSignOnIdentity 对象的 AuthenticationMethod 属性了解 具体使用的是哪一种方法。切记,不要将它与最初的 IIdentity 的 AuthenticationType 属性相混淆; 您会发现,这个属性返回的永远是 WebSSO,其基本含义就是由 ADFS 负责登录控制。 其他一些有趣的属性还包括 AuthenticatingAuthority,它返回的是对客户端进行身份验证的帐户合 作伙伴的 URI。另外,最好不要忘了添加一个“退出”按钮,这样,您就会发现 SignOutUrl 属性也是很 有用的。 本文的示例应用程序用一个表格列出了 SingleSignOnIdentity 的所有公共属性,如图 6 所示。此外 ,它还列出了安全属性的集合,基本上显示了以原始形式发送的所有声明。当然了,您必须首先设置好 ADFS,然后才能运行这个应用程序。 图 6 应用软件程序样品 在实验室里迈出 ADFS 的第一步 如果您想亲身体验 ADFS 的强大功能,那么您需要花点时间来设置一个适当的环境。在构建我的支持 声明的 B2B 设置时,我做了一些笔记,而且整理出一个非常快捷的途径,用一组(三个)虚拟 PC 镜像 来代表帐户合作伙伴,然后用一台客户机代表资源合作伙伴。我已经将这些笔记上传到了我的维基百科。 有些笔记可能看起来比较简略,但只要你用过虚拟 PC 和 Windows,就会一目了然了。我将指导您设置域 并使用 SYSPREP,这对您来说可能还是新玩意儿。您也可以双击页面编辑我的维基百科,请将您的意见添 加进来,以便以后的读者能够加以参考;不过,您添加的意见请尽量保持简要,并请遵循我原来笔记的中 心思想。 此外,我的维基百科中还有一个示例应用程序,其中包括的配置文件可以供您测试。只要将 default.aspx 和 web.config 文件复制到资源合作伙伴镜像的虚拟目录中即可;接下来,您就应该能够 登录到客户机,通过浏览器访问合作伙伴应用程序中的 Web 应用程序并进行登录。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |