ASP.NET安全性:拒绝匿名访问登录页面

时间:2012-03-22 11:22:37

标签: asp.net security web-config anonymous

我希望拒绝对我的登录页面的所有匿名访问,并且只允许具有特定角色的人员能够查看该目录下的页面或任何内容。这可能吗?我试图在web.config中实现它,但没有任何乐趣:(

感谢

3 个答案:

答案 0 :(得分:0)

这只能在Intranet应用程序中进行,在该应用程序中,您的用户将针对Active Directory进行身份验证。见MSDN

否则,如果用户无法访问登录页面,他们将如何登录?

我宁愿在实际内容页面上实现访问控制,或者在用户尝试登录时进行额外检查,让他们知道他们需要担任某个角色才能成功登录系统。

答案 1 :(得分:0)

是的,您可以......假设您的客户端都运行的Windows工作站与IIS Web服务器位于同一个AD域中,并且正在使用Internet Explorer(因此,仅限Intranet,而不是通过Internet)。您希望将IIS配置为仅接受集成Windows身份验证,这将强制客户端工作站使用Kerberos向IIS提供身份验证信息。这是关于如何配置它的a how-to from Microsoft

答案 2 :(得分:0)

web.config

<configuration>
   <system.web>
      <location path="MyLoginPage.aspx"> 
         <system.web>
            <authorization>
               <deny users="?"/>
            </authorization>
         </system.web>
      </location>
   </system.web>
</configuration>

特殊关键字?表示匿名用户;在the element schema中记录:

  

属性:用户

     

以逗号分隔的拒绝访问资源的用户名列表   问号(?)拒绝匿名用户,星号(*)表示拒绝所有用户帐户访问。

基本上这是微软啰嗦的说法:

  • 位置: MyLoginPage.aspx
  • 拒绝:匿名

这意味着必须使用表单以外的机制对某人进行身份验证;例如集成(也称为Kerberos,Windows)身份验证或基本身份验证。您将无法使用表单身份验证,因为他们无法访问登录页面进行登录。