实现基于表单的身份验证

时间:2012-12-07 10:41:38

标签: asp.net

我有一个面向公众用户的网站,但也有一个大约10页的管理员部分,我只需要为网站管理员保护。

如果我在10个页面上实施基于表单的身份验证,它是否也会在网站的公共部分传播?即web.config中的更改。

我希望我的网站有3个安全级别:

  1. 所有公共用户(未注册)
  2. 已注册的公共用户
  3. 网站管理员
  4. 我正在查看此示例(http://support.microsoft.com/kb/301240),但看起来它关闭了整个应用程序的公共视图!?!

    此致 茶

4 个答案:

答案 0 :(得分:1)

你可以完全避免麻烦。为admin&创建单独的网站在单个Web应用程序项目中公开。

答案 1 :(得分:0)

基于表单的身份验证使您可以控制受保护的内容。因此,当你说“看起来它关闭整个应用程序的公共视图”时,这是不正确的。

您只能授予管理员用户访问10个管理页面的权限,并允许所有用户访问公共页面。

在示例中,您有以下内容:

<authorization>
   <deny users ="?" />
   <allow users = "*" />
</authorization>

如果它位于包含管理页面的文件夹中,则不允许匿名用户访问这些页面。如果您将其放在根文件夹中,则匿名用户将无法访问您的任何网站。

答案 2 :(得分:0)

我认为根据用户角色允许/拒绝权限会更容易。

例如,如果您需要允许管理员角色下的所有用户和其他用户受到限制。

 <authorization>
    <allow roles="Admin" />
     <deny users="*" />
 </authorization>

阅读

Managing Authorization Using Roles

Use Role Manager in ASP.NET

Assigning Roles to Users

答案 3 :(得分:0)

通过网站管理工具,您可以设置用户,角色以及允许他们访问的页面,包括匿名用户,而无需进入代码。

以下是MSDN工具概述: http://msdn.microsoft.com/en-us/library/yy40ytx0%28v=VS.100%29.aspx