我一直在构建ASP.NET MVC应用程序并使用表单身份验证。在我的控制器动作中,我有:
[授权(用户=“我,乔”)]
一直很好。昨晚,当我发布最新的更改并尝试查看我的网站时,它开始弹出一个Windows身份验证对话框。我查看了所有代码,无法弄清楚为什么它会更改为Windows身份验证。我的web.config文件至少在10天内没有更改。如果我从我的开发框运行代码,它不会这样做...只有当它从我的主机运行时。如果我从控制器操作中删除授权行,则不会发生。
如何修复此问题或如何调试我的解决方案以了解为何会发生这种情况?
BTW,我的web.config说:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
答案 0 :(得分:3)
这很可能是针对Web服务器上网站文件夹的身份验证和权限的IIS设置。我会先检查这两个。
答案 1 :(得分:1)
我只是在黑暗中拍摄,但你的web.config中是否有<identity>
设置?
<system.web>
...
<identity impersonate="true"/>
...
</system.web>
如果是这样,删除此行可能会有所帮助。向您的托管服务提供商询问为什么Windows身份验证突然应用于您的网站也可能有所帮助。正如其他人所提到的那样,IIS设置可能导致这种行为。
答案 2 :(得分:0)
我认为您需要为IUSER,IWAM
设置权限使用Windows资源管理器浏览到要授予权限的文件夹。右键单击该文件夹,然后选择“属性”。在结果对话框中,单击顶部附近的“安全”选项卡。然后,您可以为这些帐户添加或编辑安全性(IUSR_machineName,IWAM_macnineName和ASPNET)。