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

ASP.NET安全性:拒绝匿名访问登录页,asp.net,security,web-config,anonymous,Asp.net,Security,Web Config,Anonymous,我想拒绝所有匿名访问我的登录页面,只允许具有特定角色的人查看该页面或该目录下的任何内容。这可能吗?我曾尝试在web.config中实现此功能,但没有成功:( 谢谢这只能在内部网应用程序中实现,在该应用程序中,您的用户将通过Active directory的身份验证。请参阅 否则,如果用户无权访问登录页面,他们将如何登录 我更愿意在实际内容页上实施访问控制,或者在用户尝试登录时进行额外检查,让他们知道他们需要担任某个角色才能成功登录到系统。是的,您可以……假设您的客户机都在运行与您相同的AD域中的

我想拒绝所有匿名访问我的登录页面,只允许具有特定角色的人查看该页面或该目录下的任何内容。这可能吗?我曾尝试在web.config中实现此功能,但没有成功:(


谢谢

这只能在内部网应用程序中实现,在该应用程序中,您的用户将通过Active directory的身份验证。请参阅

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


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

是的,您可以……假设您的客户机都在运行与您相同的AD域中的Windows工作站您的IIS Web服务器和正在使用Internet Explorer(因此,仅限intranet,不通过Internet)。您希望将IIS配置为仅接受集成的Windows身份验证,这将强制客户端工作站使用Kerberos向IIS提供身份验证信息。下面介绍如何配置此信息。

web.config中:

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

:

属性:用户

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

基本上,这是微软冗长的说法:

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

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

在用户登录之前,您如何知道用户的角色?我希望在查看页面时使用windows登录来检查他们的角色。这可能吗?是吗这甚至是最好的解决方案?