【问题标题】:I received error 401 : unauthorized when accessing my web API我收到错误 401:访问我的 Web API 时未经授权
【发布时间】:2017-03-07 03:51:18
【问题描述】:

我正在尝试运行我的一个 Web 应用 API,但是当提示输入用户和密码时,它让我拒绝访问。我什至尝试从 NTLM 更改为 Kerberos。仍然无法正常工作。我是sharepoint的新手。一个月前才开始

这就是我调用我的 api 的方式

    var json = $.ajax({
            url: (serviceType == "wcf" ? wcfServicesUrl : servicesApi) + wcfServiceUri,
            type: type,
            data: data,        
            crossDomain: true,
            contentType: "application/json",
            dataType: "json",
            xhrFields: {
                withCredentials: true
            },
            )};

【问题讨论】:

  • 你能分享一下你在哪里调用API的代码吗?如果您从 JS 调用它,您可能需要添加一个 auth 标头
  • 我编辑了帖子

标签: asp.net-web-api windows-authentication


【解决方案1】:

您需要在 IIS 中为您的 Web API 应用程序调整身份验证设置。

根据您要执行的操作,您可能需要启用这些选项中的一个或多个。

您的应用程序池身份也很重要。确保他们的用户有权访问您的内容/数据/等。

更新:将 Windows 身份验证设置为已启用,确保所有其他身份验证均已禁用。不要使用 Kerberos。在浏览器中将 Web 应用的 URL 添加到受信任的站点。

【讨论】:

  • 如果我没记错的话,我使用的是 ASP.NET WebAPI。我们正在使用 Windows 身份验证,并且我已经通过 IIS 更改了身份验证。它提示我三次@GlennFerrie
  • 如果您从服务器进行测试,您的浏览器可能不会自动将您的身份传递给网络服务器,除非您将其标记为受信任站点。
  • 它仍然无法让我通过。我标记为受信任的站点和本地 Intranet 仍然出现身份验证错误。我正在使用连接到服务器的远程桌面。
  • 匿名访问已关闭?你的 web.config 中有什么?
  • 是的。我的匿名访问全部被取消。哪个 web.config ?我的应用程序池?
【解决方案2】:

我最近遇到了生产问题,我的 PRODUCTION API 服务器突然开始出现 401 未经授权的错误,我在互联网上搜索了很多,但没有得到微软的支持,因为这个应用程序运行良好,突然发生错误,微软只是看看应用程序使用的点网框架是 4.0 ,所以他们建议去 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

当应用程序托管在 IIS 上时,它会在此特定文件夹中编译其 dll 和其他文件,如果它被锁定或损坏,应用程序将开始给出 401 未经授权的错误 并删除临时文件并重新启动 IIS 和 Voala 它开始工作。 如果您觉得方便,请将其标记为答案

【讨论】:

    【解决方案3】:

    401也可以是NTFS权限,看看here:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 2016-02-06
      • 2016-09-11
      • 2019-02-01
      • 2011-09-14
      相关资源
      最近更新 更多