401 Unauthorized:由于凭据无效,访问被拒绝

Posted

技术标签:

【中文标题】401 Unauthorized:由于凭据无效,访问被拒绝【英文标题】:401 Unauthorized: Access is denied due to invalid credentials 【发布时间】:2012-10-28 02:12:12 【问题描述】:

我正在使用 IIS Express 来部署 MVC4 应用程序。该网站在同一台计算机上完美运行。但在局域网中它给了我错误 401。

<authentication mode="Forms">
    <forms loginUrl="~/" slidingExpiration="true" timeout="20">
    </forms>
</authentication>

在家庭控制器中

[HttpPost]
[AllowAnonymous]        
public ActionResult Index(LoginModel model, string returnUrl)


我正在管理员模式下从命令提示符启动 IIS 服务器。 IIS 以错误401 响应请求。

有什么线索吗?

【问题讨论】:

【参考方案1】:

我意识到这是一篇较旧的帖子,但我在 IIS 8.5 上遇到了同样的错误。希望这可以帮助另一个遇到相同问题的人(我没有在其他标题相似的问题中看到我的问题)。

应用程序池标识的所有设置似乎都正确,但我仍然收到错误消息。经过大量挖掘,匿名用户可以使用应用程序池身份或特定用户的凭据进行设置。无论出于何种原因,我的默认用户都是特定用户。将设置更改为 App Pool Identity 为我解决了这个问题。

    IIS 管理器 → 站点 → 网站 双击“身份验证” 选择匿名身份验证 从“操作”面板中,选择“编辑” 选择应用程序池标识并单击确定

希望这可以为其他人节省一些时间!

【讨论】:

也允许在“.net 授权规则”中 以防万一这不是给你的,搞砸我的是我删除了 iisstart,我创建了一个 default.htm 但实际上 default.htm 是 default.htm.txt 因为微软喜欢在事情上撒谎,并且该服务器隐藏了文件扩展名。感谢微软如此蹩脚。 与许多拯救我培根的答案一样,我希望我能多次投票 启用 Windows 身份验证时发生了什么 另外,如果请求的资源不在站点的根目录中,请检查该资源的目录路径中是否有另一个 web.config。如果有,它可能有一个拒绝匿名访问的授权元素。【参考方案2】:

如果您使用的是 IIS 7,请执行以下操作:

    选择您的网站。 点击错误页面。 编辑功能设置。 选择详细错误。

【讨论】:

完美。 :) 谢谢 我只有通过匿名访问登录页面的表单身份验证。虽然机器本身一切正常,但我从远程机器上得到了 401。 “选择细节错误”修复了问题。我不明白这是如何让身份验证问题消失的,但它确实有效。 我在部署 MVC 应用程序时遇到了这个问题。在开发环境中,错误的特殊页面(404、401 等)工作正常。但是在生产环境中它并没有......直到我改变了 Uwe 和 Suraj 所说的。谢谢。 我给了你一个 +1,因为这解决了我的问题,但我希望我知道为什么这解决了问题。无论如何,谢谢。【参考方案3】:

确保您在 iis 上启用匿名身份验证,如下所示:

【讨论】:

是启用匿名身份验证。【参考方案4】:

如果有人还在寻找这个,这为我们解决了问题:

这对谁有帮助,这救了我的命...

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

    打开 IIS 并选择导致 401 的网站 打开“IIS”标题下的“Authentication”属性 点击“Windows Authentication”项,然后点击“Providers” 对我来说,问题在于协商高于 NTLM。我假设在幕后进行了某种握手,但我从未真正通过身份验证。我将 NTLM 移到了最高点,BAM 修复了它。

Here is the link where this was found.

【讨论】:

【参考方案5】:

我意识到这是一个老问题,但在我的搜索中出现了这个问题。对于最近构建、首次部署的 MVC 应用程序也有类似的问题,并且身份验证机制没有完全解决。

在我的例子中,这不是一个 IIS 设置,而是一个没有 [AllowAnonymous] 修饰的控制器。我在 Layout.cshtml 中使用了 Render.Action/Html.Action 并且用户未经身份验证。所以 Layout 试图在 UnAuthenticated 上下文中加载 Authenticated Action。

一旦我将操作更新为 AllowAnonymous,问题就消失了,this is what led me to it。

希望这对某人有所帮助。

【讨论】:

【参考方案6】:

我在 IIS 10 上遇到了这个问题。这就是我修复它的方法。

    打开 IIS 选择网站 开放认证 编辑匿名身份验证 选择应用程序池标识

【讨论】:

哇!这刚刚结束了我长达一周的头痛。我刚刚将一个 Web 应用程序从 Windows auth 移动到 ADFS 并将服务器升级到 2019,并且即将放弃并返回到旧的 2012 服务器。谢谢!!!!!!!!!【参考方案7】:

我遇到了类似的问题。

文件夹已共享,并提供了经过身份验证的用户权限,这解决了我的问题。

【讨论】:

【参考方案8】:

我今天遇到了类似的问题。出于某种原因,我的 GET 请求很好,但是 PUT 请求对我的 WCF WebHttp 服务

失败了

将以下内容添加到 Web.config 解决了该问题

 <system.web>
  <authentication mode="Forms" />
 </system.web>

【讨论】:

【参考方案9】:

当我使用 MVC 文件夹创建一个空项目,然后将应用程序部署到服务器时,我遇到了这个错误。我的问题是我没有在Web.config 中定义身份验证,所以我所要做的就是将此行添加到system.web 标记中。

<system.web>
    <authentication mode="None"/>
</system.web>

【讨论】:

【参考方案10】:

我在 IIS 8.5 下遇到了同样的问题。对我来说,一个可行的解决方案是更改 IIS 以显示详细的错误。请参阅 sna2stha 的回答。但是我认为将详细的错误消息转发到生产环境中的浏览器并不是一个好主意。 我在 httpErrors-Section 中添加/更改了 existingResponse 属性,因此 IIS 没有处理任何现有的 Asp.net 响应:

<system.webServer>
   <httpErrors existingResponse="PassThrough" />
</system.webServer>

这对我有用。

【讨论】:

【参考方案11】:

在我的例子中,它起作用的原因是 将匿名用户身份从特定用户 (IUSR) 更改为应用程序池身份。 很奇怪,因为其他网站正在使用特定用户 IUSR 并且工作正常。

【讨论】:

【参考方案12】:

正如许多答案所表明的那样,错误可能是由多种原因引起的。在我的例子中,它与授权规则相关联:它们是在应用程序部署后很久才添加的。 IIS 的此功能作为 Windows 组件开启(万维网服务->安全->URL 授权)。

应该归咎于 web.config 中的这个特定部分:

<system.webServer>
  <security>
    <authorization>
      <remove users="*" roles="" verbs="" />
      <add accessType="Deny" users="?" />
      <add accessType="Deny" users="user1,user2" />
      <add accessType="Allow" users="*" />
    </authorization>
  </security>
</system.webServer>

因此,users="?" 的记录也阻止了对具有匿名身份验证的路径的访问,因为它默认继承了规则。但是,在 IIS 中,您可以转到应匿名访问的特定文件夹/文件并选择授权规则:

这里可以通过删除旧规则并选择性地添加允许的规则以使其更明确,从而在本地覆盖规则:

【讨论】:

【参考方案13】:

我遇到了一个稍微不同的问题。凭证问题是针对运行应用程序的底层用户,而不是尝试登录的用户。一种测试方法是转到 IIS 管理 -> 站点 -> 您的站点 -> 基本设置 -> 测试设置。

【讨论】:

【参考方案14】:

我遇到了网站权限问题,无法让 Windows 身份验证正常工作。最后是folder permissions rather than ASP.NET configuration issue,一旦Everyone 用户被授予权限,它就开始工作了。

【讨论】:

【参考方案15】:

您可以在 web 项目上按 F4 进入“项目属性”窗口。

然后确保在“开发服务器”部分中启用匿名身份验证:

【讨论】:

【参考方案16】:

就我而言, 我的应用程序是在MVC 中开发的,我的家庭控制器类用[Authorize] 装饰,这导致了这个问题。 所以我删除了它,因为我的应用程序不需要任何身份验证。

【讨论】:

以上是关于401 Unauthorized:由于凭据无效,访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

IIS启动失败,启动Windows Process Activation Service时,出现错误13:数据无效 ;HTTP 错误 401.2 - Unauthorized 由于身份验证头无效,您无

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

401 - 未授权: 由于凭据无效,访问被拒绝。 您无权使用所提供的凭据查看此目录或页面。

阿里云服务器win10 访问服务器图片资源提示 401 - 未授权: 由于凭据无效,访问被拒绝。

调用 Coinbase pro 沙盒 api 时,无效:401 Unauthorized。文本:""message":"invalid signature&qu

phpstrom 登录git报401 unauthorized