2012-01-17 62 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

相关问题