带有Windows身份验证的WebAPI返回401未授权
发布时间:2020-12-14 02:17:41 所属栏目:Windows 来源:网络整理
导读:我正在设计一个WebAPI服务,它必须对客户端的AD服务器使用 Windows身份验证.我正在尝试在本地测试这个并且不断收到401错误,然后服务器因为凭据无效而根本不允许请求.我正在IIS 8.5本地进行本地测试(安装在Windows 8.1盒子上).在IIS中,我使用以下提供程序启用
我正在设计一个WebAPI服务,它必须对客户端的AD服务器使用
Windows身份验证.我正在尝试在本地测试这个并且不断收到401错误,然后服务器因为凭据无效而根本不允许请求.我正在IIS 8.5本地进行本地测试(安装在Windows 8.1盒子上).在IIS中,我使用以下提供程序启用了Windows身份验证:
> NTLM 此外,我禁用了内核模式身份验证,因为当我启用内核模式和协商时,IIS会对我大喊:kerberos.扩展保护也被禁用. 在我的配置中,我将授权规则设置为允许所有用户,并且身份验证模式设置为“none”: <system.web> <authentication mode="None" /> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web> 然后在webapi的控制器中,我将[Authorize]属性放在所有控制器上: [Authorize] [RoutePrefix("api/Workorder")] public class WorkorderController : ApiController { ... } 有人可以解释为什么每次我尝试访问API方法时都会遇到401挑战吗? 提前致谢! 编辑: 我还通过fiddler观察了请求流,我能够看到一系列4个请求,每个请求都尝试使用Negotiate方法进行身份验证,并且似乎有来回传递的kerberos票证. 解决方法
我今天遇到了同样的问题.我将Web API项目属性,匿名身份验证更改为已启用,将Windows身份验证更改为已禁用.它就像魅力一样!
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- .NET Windows服务需要使用STAThread
- windows-vista – 在Vista上运行安装程序而不关闭UAC
- ms-media-foundation – Microsoft Media Foundation的状态
- windows-xp – 如何锁定Windows XP以用作互联网信息亭?
- entity-framework – 是否可以将Entity Framework与Windows
- 如何在Metro XAML中定义隐式数据模板?
- windows-server-2008 – 仅在Windows客户端和域控制器之间打
- windows-phone-7 – 市场和许可证
- vbscript – 在Windows 10上运行的系统上设置本地计算机名称
- windows – pstools / pskill – 使用记录?