gpt4 book ai didi

c# - 声明身份 : Add claim with type enum (or other strong type)

转载 作者:太空宇宙 更新时间:2023-11-03 23:42:31 24 4
gpt4 key购买 nike

有没有办法添加不是字符串的声明? (在我的例子中,添加一个具有枚举值的声明是我想要的,但我想知道一般的各种类型。)

例如,这是我想做的:

ClaimsIdentity identity = new ClaimsIdentity("my_auth_type");
identity.AddClaim(new Claim("my_claim_name", MyEnum.SomeValue));

第二行无效,因为 Claim 构造函数需要一个字符串作为第二个参数。我可以调用 enumValue.ToString(),但理想情况下,让它保持强类型似乎是更好的做法。这可能吗?

最佳答案

你可以像这样定义一个扩展方法:

    public static void AddEnumClaim<T>(this ClaimsIdentity identity, String type, T enumvalue)
where T : struct
{
if (!typeof(T).IsEnum)
throw new ArgumentException("AddEnumClaim must be an enum");
identity.AddClaim(new Claim(type, enumvalue.ToString()));
}

并用 :

调用它
identity.AddEnumClaim("my_claim_name", MyEnum.SomeValue);

关于c# - 声明身份 : Add claim with type enum (or other strong type),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28548398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com