![](/img/trans.png)
[英]OWIN authentication succeeds but User.Identity.IsAuthenticated is false
[英]How to set value to User.Identity.IsAuthenticated as false in Forms Authentication
我有一種情況,我想輸入匿名用戶的詳細信息。 所以我在Profile中為他們創建了一個用戶ID。 當我設置用戶詳細信息時
FormsAuthentication.SetAuthCookie(username, true);
我希望User.Identity.Name與用戶有關的詳細信息與用戶名,但User.Identity.IsAuthenticated為false。 現在我認為它是真的。 我想在特定登錄后才將其設置為true。
FormsIdentity類是硬連線的,總是返回true。 所以這不能改變。 只要名稱不為空,即使GenericIdentity也會返回true。
解決方法是創建自己的IIdentity實現,並替換Global.asax中Application_PostAuthenticateRequest事件中的表單標識。 這是一個經過驗證的安全解決方案。
另外請考慮您是否真的想要這樣做。 優秀的做法是,未經身份驗證的用戶是匿名用戶,他們沒有名字,並且內置身份類的工作方式非常復雜。
遺憾的是,您無法將User.Identity.IsAuthenticated修改為false。 您可以創建自己的cookie,也可以將此用戶的字符串變量作為Dictionary分配給會話。 通過這種方式,您可以修改該值並手動銷毀特定方案的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.