HttpContext.User.Identity.AuthenticationType 的可能值
Possible values of HttpContext.User.Identity.AuthenticationType
在 ASP.NET Core 中,有了 Identity,我总是得到这个:
HttpContext.User.Identity.AuthenticationType == "Identity.Application"
这有什么意义?还有其他值吗?
当我设置所有内容以使用 Windows 身份验证时,我得到 HttpContext.User.Identity.AuthenticationType = Kerberos
,这就是一个例子。
此外,当我自己登录时:
ClaimsPrincipal principal = new ClaimsPrincipal(new ClaimsIdentity(
new List<Claim>{
new Claim(ClaimTypes.Name, username),
new Claim(PartnersUserDataClaim, userData),
new Claim(ModuleNameClaim, moduleName)
},
"SSO/Windows"));
await HttpContext.Authentication.SignInAsync(APIAuthSchemeName, principal);
"SSO/Windows"
最终成为 HttpContext.User.Identity.AuthenticationType
的值
所以,我想说这个属性可以由任何能够创建您的主体的层来设置,无论它是提供的中间件,例如用于 Kerberos 的 IIS 中间件,还是您自己的层。
在 ASP.NET Core 中,有了 Identity,我总是得到这个:
HttpContext.User.Identity.AuthenticationType == "Identity.Application"
这有什么意义?还有其他值吗?
当我设置所有内容以使用 Windows 身份验证时,我得到 HttpContext.User.Identity.AuthenticationType = Kerberos
,这就是一个例子。
此外,当我自己登录时:
ClaimsPrincipal principal = new ClaimsPrincipal(new ClaimsIdentity(
new List<Claim>{
new Claim(ClaimTypes.Name, username),
new Claim(PartnersUserDataClaim, userData),
new Claim(ModuleNameClaim, moduleName)
},
"SSO/Windows"));
await HttpContext.Authentication.SignInAsync(APIAuthSchemeName, principal);
"SSO/Windows"
最终成为 HttpContext.User.Identity.AuthenticationType
所以,我想说这个属性可以由任何能够创建您的主体的层来设置,无论它是提供的中间件,例如用于 Kerberos 的 IIS 中间件,还是您自己的层。