FormsIdentity IsInRole返回不正確的值 - 我錯過了什麼?
不應該IsInRole
檢查以上返回true
?該方法的簽名是
bool IsInRole(string role);
可能有人給這裏爲什麼它返回假的簡要說明?看起來似乎很明顯,但似乎無法指出。
FormsIdentity IsInRole返回不正確的值 - 我錯過了什麼?
不應該IsInRole
檢查以上返回true
?該方法的簽名是
bool IsInRole(string role);
可能有人給這裏爲什麼它返回假的簡要說明?看起來似乎很明顯,但似乎無法指出。
它看起來像角色存儲在身份驗證cookie的用戶數據部分。但IsInRole
方法在檢查角色時不會查看它,除非您告訴它這樣做。您可以查看following answer以瞭解如何操作的示例(在本例中,我假設角色存儲在身份驗證Cookie的用戶數據部分中,並且由|
=>分隔,這是在用戶登錄)。
感謝Darin,幫助。原來我有一個地方,我正在做'GenericPrincipal gPrincipal = new GenericPrincipal(formsIdentity,null);' - 我會嘗試傳遞角色時,現在我新gPrincipal,以便'IsInRole'檢查將工作。這聽起來像是你缺少的部分嗎? – VoodooChild 2012-01-17 20:24:10
@VoodooChild,完全和絕對聽起來像你的拼圖缺少的部分:-) – 2012-01-17 20:26:34
優秀 - 歡呼聲,這沒有戲法:) – VoodooChild 2012-01-17 20:29:59
請右鍵單擊並查看圖像以便將它放大。很抱歉添加圖片,但我只想給這裏提出的問題提供背景信息。 – VoodooChild 2012-01-17 20:02:34
爲什麼你確定它應該返回true?你真的有一個名爲'ResetPassword'的角色? – santiagoIT 2012-01-17 20:06:04
@santiagoIT:是的,請參閱來自'IPrincipal'的'Ticket.UserData'的值。 – VoodooChild 2012-01-17 20:09:49