的ClaimsPrincipal類,具有包含多個ClaimsIdentitites如下的能力:爲什麼ClaimsPrincipal具有AddIdentity方法但沒有RemoveIdentity方法?
public ClaimsPrincipal(IEnumerable<ClaimsIdentity> identities)
ClaimsPrincipal具有add方法AddIdentity添加一個權利要求的同一性此聲明主體。爲什麼沒有RemoveIdentity方法?
的ClaimsPrincipal類,具有包含多個ClaimsIdentitites如下的能力:爲什麼ClaimsPrincipal具有AddIdentity方法但沒有RemoveIdentity方法?
public ClaimsPrincipal(IEnumerable<ClaimsIdentity> identities)
ClaimsPrincipal具有add方法AddIdentity添加一個權利要求的同一性此聲明主體。爲什麼沒有RemoveIdentity方法?
不可避免的是,當有人問上那麼爲什麼一些功能不存在,我總是link and quote Eric Lippert:
有人問我: 「爲什麼不C#實現功能X?」每時每刻。答案總是一樣的:因爲沒有人設計,指定,實施,測試,記錄和發佈該功能。所有這些事情都是必要的,才能實現功能。他們都花費大量的時間,精力和金錢。功能並不便宜,我們非常努力地確保我們只是在我們的時間,精力和金錢預算有限的情況下運送那些能夠給用戶帶來最佳效益的功能。
所以你的問題是沒用的。不過,我認爲你要問的是:
ClaimsPrincipal有一個AddIdentity方法,但沒有RemoveIdentity方法,我該如何刪除一個Identity。
不管什麼原因,你正在尋找的方法是不是在ClaimsPrincipal,但在ClaimsIdentity的方法RemoveClaim()
或首選TryRemoveClaim()
。
嘗試從索賠身份中移除索賠。
我知道RemoveClaim,但那不是我問的。 RemoveClaim不會刪除ClaimsIdentity,它會從ClaimsIdentity中刪除單個聲明。 –
另外,我問,因爲它似乎是短視,允許多個ClaimsIdentities並提供一個添加方法,但沒有刪除方法。也許他們並不希望刪除ClaimsIdentity。我真的對這背後的理由感興趣。 –