如何在Web应用程序中使用单点登录

时间:2009-03-20 16:43:10

标签: c# asp.net web-config forms-authentication single-sign-on

我有一个ASP.NET 2.0 Web应用程序(C#),我想启用单点登录。我只希望某些用户可以访问所有页面,而其他用户只能看到几页。我需要对Web.config文件进行哪些更改,以及在代码隐藏页面中需要哪些代码?

谢谢

1 个答案:

答案 0 :(得分:1)

幸运的是,ASP.NET的构建考虑了这种确切的场景。

这里的一个简单示例是以下项目结构:

  • LoginPage.aspx
  • Default.aspx的
  • 的web.config
  • /受保护的
    • MembersOnlyPage.aspx
    • 的web.config

如果我理解正确,您只需将'web.config'文件放入上面显示的'Protected'文件夹即可。该web.config文件应如下所示:

<system.web>
<authorization>
 <allow users ="Bob, Jane, Mary" />
</authorization>
</system.web>

阅读 <allow> <deny> <authorization> 元素,因为您可以还可以使用'roles'属性而不是'users'来指定应该具有访问权限或被拒绝访问权限的用户组。

然后,您需要修改根web.config文件以“打开”表单身份验证。添加如下内容:

<authentication mode="Forms" >
 <forms loginUrl="LoginPage.aspx" name=".ASPNETAUTH" protection="All" path="~/" timeout="20">
</forms>
</authentication>

...到您的<system.web>元素。

现在,您所要做的就是连接您的LoginPage.aspx以将用户登录。您可以使用标准的ASP.NET登录控件来实现此目的,并且如果您想使用自己的数据库进行身份验证/授权,你可以截取登录控件的事件来做你需要的任何事情。

有关最快,最基本的解决方案,请查看以下视频:

http://www.asp.net/learn/videos/video-45.aspx

希望这有帮助

/理查德