首页 文章

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

提问于
浏览
58

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

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

在家庭控制器

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

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

任何线索?

10 回答

  • 7

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

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

    • IIS管理器→站点→网站

    • 双击"Authentication"

    • 选择匿名身份验证

    • 从“动作”面板中,选择“编辑”

    • 选择应用程序池标识,然后单击确定

    希望这能节省别人一些时间!

  • 146

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

    • 选择您的网站 .

    • 单击错误页面 .

    • 编辑功能设置 .

    • 选择详细错误 .

    请享用 .

  • 25

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

    enter image description here

  • 10

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

    对于这可能有所帮助的人来说,这拯救了我的生命......

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

    • 打开IIS并选择导致401的网站

    • 打开"IIS" Headers 下的"Authentication"属性

    • 单击"Windows Authentication"项目,然后单击"Providers"

    • 对我来说,问题是谈判高于NTLM . 我假设在幕后发生了某种握手,但我从未真正认证过 . 我把NTLM移到了最顶端的位置,并修复了它的BAM .

    Here is the link where this was found .

  • 11

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

    在我的情况下,它不是IIS设置,它是一个不是 [AllowAnonymous] 装饰的控制器 . 我在Layout.cshtml中使用了Render.Action / Html.Action,用户未经身份验证 . 因此,布局尝试在UnAuthenticated上下文中加载经过身份验证的操作 .

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

    希望这有助于某人 .

  • 0

    我今天遇到了类似的问题 . 出于某种原因,我的 GET 请求很好,但 PUT 请求失败了我的 WCF WebHttp Service

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

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

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

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

    我遇到了类似的问题 .

    该文件夹已共享,并提供了Authenticated Users权限,这解决了我的问题 .

  • 2

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

    <httpErrors existingResponse="PassThrough" />
    

    这适合我 .

  • 1

    就我而言,
    我的应用程序是在 MVC 中开发的,我的家庭控制器类是用 [Authorize] 装饰的,这导致了这个问题 .
    所以我've removed it because my application don' t需要任何身份验证 .

相关问题