ASP教程 PHP教程 JSP教程 CGI教程 XML教程
  • ASP.NET教程
  • JAVA教程
    当前位置:教程 > 程序设计 > ASP.NET教程 > 正文

    【译文】理解ASP.NET 2.0中的单点登录

    编辑:教程网 来源:网络 时间:2011年06月20日 16:23

    辉郎注:这是偶刚刚看到的一篇文章,感觉不错,所以忍不住翻译了过来,各位兄弟也可以看得方便一点。偶英文水平有限有不妥之处还望批评指正(不是有限是很烂,兄弟们手下留情哦~~~)。

    文章原文:Understanding Single Sign-On in ASP.NET 2.0

    理解ASP.NET 2.0中的单点登录

    Published: 16 Jan 2008


    摘要
    在这篇文章中,Masoud讨论了应用ASP.NET中统一身份验证模型进行跨应用程序验证的问题,包括:Membership Providers, web.config配置,配置文件的加密解密等。在文章的最后,作者提供了通过ASP.NET login controls来验证的程序。
    by Masoud Tabatabaei


    目录:

    简介
    什么是SSO?它是怎样工作的?
    系统条件
    工作
    下载
    结论
    简介
    通常在你要实现ASP.NET web应用程序的身份验证时,你需要为你的每一个应用程序创建一个登录页面。想象一下,如果你有两个或者更多的互相关联的web应用程序,你可能希望通过某种机制为你的所有带关联的应用程序实现仅出现一次登录页面。这样,一旦你登录了一次,你就可以浏览所有的关联程序,而不再需要额外的登录了。单点登录(SSO)就是这样的访问控制机制,它允许一个用户通过一次验证就可以访问所有软件系统资源。

    试想你在你的服务器上创建了两个或者更多的web站点。就像其他的web站点一样,你只是使用ASP.NET权限验证机制来验证你的用户。那么,你的这些站点可能需要一个或更多的登录页面。现在你正试图证明怎么样通过更改你的配置来实现跨程序登录。换句话说,我们只想给我们的程序配置一个登录页面,并且一旦用户通过了验证,他就可以浏览其他所有的站点,而不需要另外的登录。在这篇文章的附录中,你也可以看到如何加密你的配置文件。

    什么是单点登录?它是怎样工作的?

    在许多的公司里,他们有一些以web站点或web应用程序为表现层的系统。自然,由于安全议题他们将需要通过基于ASP.NET 2.0,通过Membership Provider 和 Role Provider 或者定制实现权限验证和权限验证系统。不论怎样,所有的站点都会默认有一个确定用户的ID和密码在数据库中是否有效的”login.aspx” web窗体.当你只有一个站点或者这些站点都是独立运行时,这样做是没有问题的。但是当你有两个或多个站点,而且站点间是关联在一起或链接在一起的,你没准就会问:为什么每个应用程序你都必须登录一次?为什么你不可以只有一个”login.aspx”来实现验证,并让所有不关联程序真正统一起来。幸运的是,在ASP.NET 2.0中你可以通过同样的配置来实现跨应用程序访问,不论是你的新的站点还是已经存在的站点。

    在ASP.NET配置文件(web.config)中有一个配置节(在<system.web中)命名为<machineKey>,负责加密和解密窗体(这些窗体可以读窗体权限验证cookies)权限认证的cookie数据和view-state数据,也负责校验进程外(out-of-process)session 状态标识。所以当用户一旦被验证通过并且有一个cookie保存到了本地计算机,其他拥有同样<machineKey>配置的应用程序也可以识别此cookie为有效的权限票据。所以在其他拥有同样<machineKey>配置的应用程序中就不再需要第二次登陆了。

    由于<machineKey>信息是敏感的,你需要加密配置文件中的此节信息。为了实现这个目标,我将使用ConfigurationManager类和他的方法。这里还有一个类SectionInformation,包含有配置中单个配置节的元数据。此类中有个方法ProtectSection(),用来解密你的配置文件的配置节。

    系统条件

    · A web server running on Windows 2000 or later

    · .NET Framework 2.0

    · Visual Studio 2005

    · Microsoft sql server 2005 Express Edition
  • 原文来自 教程网 转载请注明:http://www.websmill.com/chengxu/aspnet/5512.html

  • 上一篇:求素数(质数)的算法
  • 下一篇:DATAGRID分页,增加首页、最后一页(源码)