Asp.net mvc 在IIS 8.5中禁用匿名访问会导致重定向到/account/login

Asp.net mvc 在IIS 8.5中禁用匿名访问会导致重定向到/account/login,asp.net-mvc,forms-authentication,iis-8.5,Asp.net Mvc,Forms Authentication,Iis 8.5,我在登台环境中有几个站点不允许公共访问。 当我在iis 8.5中禁用匿名访问时,它会写入web.config <authentication mode="Windows"> <forms loginUrl="~/Account/LogOn" timeout="2880" /> </authentication> 这将导致重定向到指定的url。这当然会调用错误页面,因为没有登录页面。一些站点实际上启用了表单身份验证,现在被覆盖,从而导致其他问题,这进一

我在登台环境中有几个站点不允许公共访问。 当我在iis 8.5中禁用匿名访问时,它会写入web.config

<authentication mode="Windows">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

这将导致重定向到指定的url。这当然会调用错误页面,因为没有登录页面。一些站点实际上启用了表单身份验证,现在被覆盖,从而导致其他问题,这进一步加剧了这种情况

在同一台服务器(windows server 2012 r2)上还有其他站点,禁用匿名访问不会写入web.config。两个站点之间唯一的真正区别是.net版本

将条目写入web.config的站点都以.net 4.0为目标,而正常工作的站点则以.net 4.5和4.5.1为目标


net版本会成为问题吗?有没有办法克服这一问题?

如果您只是手动删除每个站点部署到iis中自己的实例中时会发生什么情况。手动删除web.config中的条目不会阻止它重定向。事实上,删除它,只需更改重定向URL。我认为您需要提供更多信息,如IIS设置的屏幕截图,因为只有在站点上启用forms auth时,才会发生重定向。我假设你看到的是302响应,而不是401响应,然后点击登录页面?我从未见过它自动添加到mode=“Windows”auth元素中。您是否在ASP.Net应用程序中对Web.config进行了转换?