无法使用Windows身份验证IIS登录网站

时间:2015-07-06 12:49:22

标签: c# asp.net authentication iis windows-authentication

我一直在为这种头痛寻找解决方案很长时间。

我有一个网站,我想部署到我的网络服务器,所以我使用IIS 7并按照这些步骤验证登录到它:

1-打开IIS

2-添加网站(随机端口号)

3-将应用程序池设置为特定标识

4-禁用匿名身份验证,然后启用Windows身份验证。

5-删除“允许所有用户”规则

6-为管理员用户添加允许规则并授予他完全控制权限

当我尝试访问它时,它会要求输入用户名和密码,该用户名和密码必须与步骤6中添加的用户和密码相同。

问题是每当我点击确定时,日志记录窗口会不断弹出,因此无法访问网站

我还尝试为匿名用户添加拒绝规则

是否必须在web.config文件中添加任何内容?我需要安装或禁用某些东西吗?

任何建议都非常感谢

修改 这是我的web.config文件授权部分

<system.web>
  <authentication mode="Windows" />
  <compilation targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" />
  <pages validateRequest="false"></pages>
    <identity impersonate="false" />
  <authorization>
    <allow users="SomeUser" />
    <deny users="*"/>
  </authorization>


</system.web>

2 个答案:

答案 0 :(得分:1)

MSDN开始,您需要在IIS和ASP.NET应用程序中启用Windows身份验证

  

启动Internet信息服务(IIS)。

     

右键单击应用程序的虚拟目录,然后单击“属性”。

     

单击“目录安全性”选项卡。在匿名访问和身份验证下   控制,单击编辑。

     

确保未选中“匿名访问”复选框,并且“集成Windows身份验证”是唯一选中的复选框。

     

在应用程序的Web.config文件中或在   机器级Web.config文件,确保身份验证模式   设置为Windows,如下所示。

...
 <system.web>
  ...
  <authentication mode="Windows"/>
  ...
 </system.web>
  • 在IIS上启用Windows身份验证,以便IIS对用户进行身份验证。
  • 向web.config添加设置,以便ASP.NET知道要使用的身份验证提供程序。在这种情况下,ASP.NET使用Windows身份验证提供程序根据IIS提供的凭据
  • 将当前User属性的值设置为WindowsIdentity

同时检查授权:

从上到下检查规则,并在第一个匹配规则处停止。因此,您应在 allow之前指定deny 。例如:

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

答案 1 :(得分:1)

在花了好几个小时试图解决这个问题后,我找到了解决方案

1-打开IIS

2-添加网站(随机端口号)

3-将应用程序池设置为特定标识

4-禁用匿名身份验证,然后启用Windows身份验证。

5-删除“允许所有用户”规则

6-为管理员用户添加允许规则并授予他完全控制权限

注意:之前的所有步骤都是使用IIS向导

进行的

7-在openinig web.config文件之后我添加允许规则后找不到任何更改,所以我必须通过添加<authorization>标记手动完成,然后按相同顺序添加这些规则(此顺序为非常重要,要么不起作用)

<authorization>
   <allow users="<the user that you want to give an access>" />
   <deny users="*" /> <!--to deny all other users-->
</authorization>