我有一个面向公共用户的网站,但也有一个大约 10 页的管理部分,我只需要为网站管理员保护它。
如果我在这 10 个页面上实施基于表单的身份验证,它是否也会传播到网站的公共部分?即web.config 中的更改。
我希望我的网站 3 个安全级别可用于:
- 所有公共用户(未注册)
- 注册公众用户
- 网站管理员
我正在查看此示例(http://support.microsoft.com/kb/301240),但它似乎关闭了整个应用程序的公共视图!?!
敬茶
我有一个面向公共用户的网站,但也有一个大约 10 页的管理部分,我只需要为网站管理员保护它。
如果我在这 10 个页面上实施基于表单的身份验证,它是否也会传播到网站的公共部分?即web.config 中的更改。
我希望我的网站 3 个安全级别可用于:
我正在查看此示例(http://support.microsoft.com/kb/301240),但它似乎关闭了整个应用程序的公共视图!?!
敬茶
您可以完全避免麻烦并在单个 Web 应用程序项目中为管理员和公共创建单独的网站。
我认为根据用户角色允许/拒绝权限会更容易。
例如,如果您需要允许 admin 角色下的所有用户并限制其他用户。
<authorization>
<allow roles="Admin" />
<deny users="*" />
</authorization>
阅读一下
基于表单的身份验证使您可以控制受保护的内容。因此,当您说“看起来它关闭了整个应用程序的公共视图”时,这是不正确的。
您可以仅授予管理员用户访问 10 个管理页面的权限,并授予所有用户访问公共页面的权限。
在示例中,您具有以下内容:
<authorization>
<deny users ="?" />
<allow users = "*" />
</authorization>
如果它位于包含您的管理页面的文件夹中,则不允许匿名用户访问这些页面。如果您将其放在根文件夹中,则匿名用户将无法访问您的任何站点。
通过网站管理工具,您可以设置用户、角色以及允许他们访问哪些页面,包括匿名用户,而无需进入代码。
这是 MSDN 工具概述:http: //msdn.microsoft.com/en-us/library/yy40ytx0%28v=VS.100%29.aspx