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 中间件,还是您自己的层。