ClaimType用于存储化身URI

本文关键字:URI 化身 存储 用于 ClaimType | 更新日期: 2023-09-27 18:29:12

我在应用程序中使用Facebook/Google身份验证,一旦通过身份验证,我就会创建自己的cookie。

什么ClaimType适用于存储用户的化身URI?

ClaimType用于存储化身URI

如果找不到匹配项,则不需要坚持使用ClaimTypes枚举,因为支持字符串。

使用字符串是完全有效的:

var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);
identity.AddClaim(new Claim("Gravatar", user.GravatarLink));

收回索赔:

var gravatar = HttpContext.User.Claims
                  .Where(c => c.Type == "Gravatar")
                  .Select(c => c.Value).FirstOrDefault();

这样做的明显缺点是,这是一个"神奇"的字符串,可能会被错误键入并在运行时中断。如果你绝对想要这些额外类型的强类型,那么创建你自己的静态类型,提供自定义声明:

public static class MyClaimTypes 
{
    public static string Gravatar = "Gravatar";
    public static string FullName = "FullName";
}

这可以确保您获得强大的打字功能,而不是魔术字符串。现在,您可以将代码中的"Gravatar"字符串替换为MyClaimTypes.Gravatar