这个问题已经被问了好几次,但没有一个解决方案对我有用。我不明白他们如何将多个身份验证与 Windows 身份验证混合在一起。
这些链接
[1]: MVC - 混合身份验证 - OWIN + Windows 身份验证
[2]: https://www.asp.net/aspnet/overview/owin-and-katana/enabling-windows-authentication-in-katana
解释我需要同时启用匿名和 Windows 身份验证才能混合使用,但在启用匿名身份验证后,我的应用程序不会要求 Windows 登录凭据。
我尝试禁用匿名,然后添加基于虚拟声明的身份验证来验证每个请求,但它当时要求 Windows 登录凭据。
我的目的是支持证书身份验证以及Windows身份验证。
我尝试身份验证的方法很错误。尝试设置虚拟身份验证不起作用。在我的 api 已经在进行 Windows 身份验证的情况下设置适当的环境后,我所要做的就是在 OWIN
的配置方法中为 api 添加基于令牌的身份验证
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Tenant = "tenant link",
TokenValidationParameters = new TokenValidationParameters
{
ValidAudiences = audienceUris
},
});
所以OWIN支持开箱即用的多重身份验证,我们只需要添加一个身份验证方法就可以让它工作。