ClaimType用于存储化身URI
本文关键字:URI 化身 存储 用于 ClaimType | 更新日期: 2023-09-27 18:29:12
我在应用程序中使用Facebook/Google身份验证,一旦通过身份验证,我就会创建自己的cookie。
什么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
。