使用 IIS 7.5 进行表单身份验证 - 未授权

Posted

技术标签:

【中文标题】使用 IIS 7.5 进行表单身份验证 - 未授权【英文标题】:Forms Authentication with IIS 7.5 - Not Authorized 【发布时间】:2013-03-01 19:00:03 【问题描述】:

我有一个使用 IIS 7.5 部署到 Windows Server 2008 R2 的 Web 应用程序。该应用程序是带有 .Net Framework 4.0 的 ASP.NET MVC 3。

身份验证设置:启用匿名和表单身份验证。我已将匿名属性下的匿名用户身份值设置为指向“应用程序池身份”而不是特定用户。

Web.Config

尝试从我的计算机远程访问应用程序时,我收到消息“401 - 未经授权:由于凭据无效,访问被拒绝。”访问“帐户/登录”页面时。

我通过 Visual Studio 访问本地计算机上的应用程序没有问题。我还可以毫无问题地访问 Windows 2008 Server 上的应用程序。只有当我尝试从本地计算机访问服务器上的应用程序时,我才会遇到问题。

有什么想法吗?

一些附加说明: - 在我进入登录屏幕之前它失败了。

【问题讨论】:

我前几天也遇到过类似的问题,看看对你有没有帮助。同时重置 IUSR_YourPC 的默认匿名配置。 ***.com/questions/15030515/… 如何确定服务器是否允许表单身份验证。 右键单击包含 WebApp 的虚拟目录,然后: - 转到目录安全选项卡 - 单击修改 - 未选中集成 Windows 身份验证 - 还必须检查匿名访问。这是它在 IIS6 GUI(西班牙语)上的样子:s7.postimage.org/m95dx2zxn/form_Auth_Setts.jpg 另请检查:***.com/questions/6447728/… 在 IIS7 上有点不同。表单和匿名已启用。 Windows 身份验证已禁用。 【参考方案1】:

我已将匿名属性下的匿名用户身份值设置为指向“应用程序池身份”而不是特定用户。 尝试将其设置回原始IUSR 并确保IUSR_YourComputerName 用户可以访问站点的文件/文件夹

【讨论】:

我改回IUSR并将IUSR添加到文件夹权限但仍然没有运气。 您的 web.config 中设置了什么身份验证方案? 表单认证:【参考方案2】:

http://social.technet.microsoft.com/Forums/windowsserver/en-US/c9239a89-fbee-4adc-b72f-7a6a9648331f/401-unauthorized-access-is-denied-due-to-invalid-credentials

引用那篇文章:

IIS 7 很难弄清楚为什么我会得到 401 - 未经授权:由于凭据无效,访问被拒绝...直到我 这样做了...

1.) 打开 iis 并选择导致 401 的网站

2.) 打开“IIS”标题下的“Authentication”属性

3.) 点击“Windows Authentication”项并点击“Providers”

4.) 对我来说,问题在于协商高于 NTLM。我认为幕后正在进行某种握手,但我是 从未真正经过身份验证。我把 NTLM 移到最上面的位置,然后 修复它的 BAM。

【讨论】:

问题是关于表单身份验证,而不是 Windows 身份验证

以上是关于使用 IIS 7.5 进行表单身份验证 - 未授权的主要内容,如果未能解决你的问题,请参考以下文章

使用 Silverlight 5、IIS 7.5 对 WCF 服务进行 Windows 身份验证

iis 7.5 dns windows身份验证页面用户身份不起作用

使用 Powershell 3.0 切换 IIS 7.5 身份验证“匿名身份验证”?

IIS 7.5 Windows 身份验证失败,除非代码文件共享给最终用户

IIS 下载文件 报错“401 - 未授权: 由于凭据无效,访问被拒绝。”

具有 Windows 身份验证的 IIS 7.5 Web 应用程序是不是要求最终用户具有文件权限?