我一直在为这种头痛寻找解决方案很长时间。
我有一个网站,我想部署到我的网络服务器,所以我使用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>
答案 0 :(得分:1)
从MSDN开始,您需要在IIS和ASP.NET应用程序中启用Windows身份验证 :
启动Internet信息服务(IIS)。
右键单击应用程序的虚拟目录,然后单击“属性”。
单击“目录安全性”选项卡。在匿名访问和身份验证下 控制,单击编辑。
确保未选中“匿名访问”复选框,并且“集成Windows身份验证”是唯一选中的复选框。
在应用程序的Web.config文件中或在 机器级Web.config文件,确保身份验证模式 设置为Windows,如下所示。
...
<system.web>
...
<authentication mode="Windows"/>
...
</system.web>
同时检查授权:
从上到下检查规则,并在第一个匹配规则处停止。因此,您应在 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>