Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么ClaimsPrincipal有一个Additionity方法而没有RemoveIdentity方法?_C#_Asp.net_Security_Claims Based Identity - Fatal编程技术网

C# 为什么ClaimsPrincipal有一个Additionity方法而没有RemoveIdentity方法?

C# 为什么ClaimsPrincipal有一个Additionity方法而没有RemoveIdentity方法?,c#,asp.net,security,claims-based-identity,C#,Asp.net,Security,Claims Based Identity,ClaimsPrincipal类能够包含多个ClaimSidentite,如下所示: public ClaimsPrincipal(IEnumerable<ClaimsIdentity> identities) public ClaimsPrincipal(IEnumerable标识) ClaimsPrincipal有一个add方法AddIdentity,用于将索赔标识添加到此索赔主体。为什么没有删除方法 不可避免地,当有人问为什么某些功能不存在时,我总是: 我一直被问到“为什么

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

public ClaimsPrincipal(IEnumerable<ClaimsIdentity> identities)
public ClaimsPrincipal(IEnumerable标识)
ClaimsPrincipal有一个add方法AddIdentity,用于将索赔标识添加到此索赔主体。为什么没有删除方法


不可避免地,当有人问为什么某些功能不存在时,我总是:

我一直被问到“为什么C#不实现FeatureX?”。答案总是一样的:因为从来没有人设计、指定、实现、测试、记录和发布过该功能。所有这六件事都是实现功能所必需的。所有这些都花费了大量的时间、精力和金钱。功能并不便宜,我们非常努力确保我们只提供那些在时间、精力和金钱预算有限的情况下为用户带来最大可能好处的功能

所以你的问题很没用。然而,我想你想问的是:

ClaimsPrincipal有一个AddIdentity方法,但没有RemoveIdentity方法,如何删除标识

无论出于何种原因,您正在寻找的方法不是在上,而是在上作为方法或首选方法

尝试从索赔标识中删除索赔


我知道RemoveClaim,但这不是我所要求的。RemoveClaim不会删除一个索赔实体,而是从索赔实体中删除一个索赔。另外,我这样问是因为考虑多个索赔实体并提供一个Add方法,但不提供remove方法似乎是短视的。也许他们没有意识到有必要取消索赔。我真的对这背后的原理感兴趣。这可能是因为当您更改用户时,通过重新验证,您通常会更改整个主体,而不仅仅是身份。一旦知道用户是谁,他们的身份可能会改变,但通常不会完全停止存在。