为什么ClaimsPrincipal有一个AddIdentity方法但不删除身份方法?

时间:2014-07-12 11:26:13

标签: c# asp.net security claims-based-identity

ClaimsPrincipal类,能够包含多个ClaimsIdentitites,如下所示:

public ClaimsPrincipal(IEnumerable<ClaimsIdentity> identities)

ClaimsPrincipal有一个add方法AddIdentity,用于向此声明主体添加声明标识。为什么没有RemoveIdentity方法?

MSDN ClaimsPrincipal page

1 个答案:

答案 0 :(得分:1)

当有人询问为什么某些功能不存在时,我总是link and quote Eric Lippert

  

我被问到“为什么C#不实现功能X?”每时每刻。答案总是一样的:因为没有人设计,指定,实施,测试,记录和发送该功能。所有这六件事都是实现这一功能所必需的。所有这些都耗费了大量的时间,精力和金钱。功能并不便宜,我们非常努力地确保我们只提供那些能够为我们的用户提供最佳利益的功能,因为我们的时间,精力和预算都有限。

所以你的问题很无用。但是,我想你要问的是:

  

ClaimsPrincipal具有AddIdentity方法,但没有RemoveIdentity方法,如何删除标识。

无论出于何种原因,您要查找的方法不在ClaimsPrincipal上,而在ClaimsIdentity上作为方法RemoveClaim()或首选TryRemoveClaim()

  

尝试从声明标识中删除声明。