我有一个ASP.NET 2.0 Web应用程序(C#),我想启用单点登录。我只希望某些用户可以访问所有页面,而其他用户只能看到几页。我需要对Web.config文件进行哪些更改,以及在代码隐藏页面中需要哪些代码?
谢谢
答案 0 :(得分:1)
幸运的是,ASP.NET的构建考虑了这种确切的场景。
这里的一个简单示例是以下项目结构:
如果我理解正确,您只需将'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
希望这有帮助
/理查德