2012-01-17 47 views
0

enter image description hereFormsIdentity IsInRole返回不正確的值 - 我錯過了什麼?

不應該IsInRole檢查以上返回true?該方法的簽名是

bool IsInRole(string role);

可能有人給這裏爲什麼它返回假的簡要說明?看起來似乎很明顯,但似乎無法指出。

+0

請右鍵單擊並查看圖像以便將它放大。很抱歉添加圖片,但我只想給這裏提出的問題提供背景信息。 – VoodooChild 2012-01-17 20:02:34

+1

爲什麼你確定它應該返回true?你真的有一個名爲'ResetPassword'的角色? – santiagoIT 2012-01-17 20:06:04

+0

@santiagoIT:是的,請參閱來自'IPrincipal'的'Ticket.UserData'的值。 – VoodooChild 2012-01-17 20:09:49

回答

1

它看起來像角色存儲在身份驗證cookie的用戶數據部分。但IsInRole方法在檢查角色時不會查看它,除非您告訴它這樣做。您可以查看following answer以瞭解如何操作的示例(在本例中,我假設角色存儲在身份驗證Cookie的用戶數據部分中,並且由| =>分隔,這是在用戶登錄)。

+0

感謝Darin,幫助。原來我有一個地方,我正在做'GenericPrincipal gPrincipal = new GenericPrincipal(formsIdentity,null);' - 我會嘗試傳遞角色時,現在我新gPrincipal,以便'IsInRole'檢查將工作。這聽起來像是你缺少的部分嗎? – VoodooChild 2012-01-17 20:24:10

+0

@VoodooChild,完全和絕對聽起來像你的拼圖缺少的部分:-) – 2012-01-17 20:26:34

+0

優秀 - 歡呼聲,這沒有戲法:) – VoodooChild 2012-01-17 20:29:59

相關問題