1

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

谢谢

4

1 回答 1

1

幸运的是,构建 ASP.NET 时正是考虑到了这种场景。

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

  • 登录页面.aspx
  • 默认.aspx
  • 网络配置
  • /受保护
    • MembersOnlyPage.aspx
    • 网络配置

如果我对您的理解正确,您可以简单地将“web.config”文件放入上面显示的“受保护”文件夹中。该 web.config 文件应如下所示:

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

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

然后,您需要修改根 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

希望这可以帮助

/理查德

于 2009-03-20T17:17:04.353 回答