1

我一直在构建一个 ASP.NET MVC 应用程序并使用表单身份验证。在我的控制器动作中,我有:

[授权(用户=“我,乔”)]

这一直很好。昨晚当我发布最新的更改并尝试查看我的网站时,它开始弹出一个 Windows 身份验证对话框。我查看了所有代码,无法弄清楚为什么它会更改为 Windows 身份验证。我的 web.config 文件至少 10 天没有更改。如果我从我的开发箱运行代码,它不会这样做......只有当它从我的主机运行时。如果我从我的控制器操作中删除授权行,它就不会发生。

我该如何解决这个问题或如何调试我的解决方案以查看为什么会发生这种情况?

顺便说一句,我的 web.config 说:

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

3 回答 3

3

这很可能对 IIS 设置进行,以对 Web 服务器上的网站文件夹进行身份验证和权限。我会先检查这两个。

于 2009-05-09T21:32:51.987 回答
1

我只是在黑暗中拍摄,但是<identity>您的 web.config 中有设置吗?

 <system.web>
    ...   
    <identity impersonate="true"/>
    ...
 </system.web>

如果是这样,删除这条线可能会有所帮助。询问您的托管服务提供商为什么突然将 Windows 身份验证应用于您的网站也可能会有所帮助。正如其他人所提到的,有可能导致这种行为的 IIS 设置。

于 2009-05-09T22:26:57.783 回答
0

我认为您需要为 IUSER、IWAM 设置权限

使用 Windows 资源管理器浏览到您要授予权限的文件夹。右键单击该文件夹并选择“属性”。在出现的对话框中,单击顶部附近的“安全”选项卡。然后,您可以为这些帐户(IUSR_machineName、IWAM_macnineName 和 ASPNET)添加或编辑安全性。

于 2009-05-09T21:33:46.600 回答