【问题标题】:FormsIdentity IsInRole returning incorrect value- what am I missing?FormsIdentity IsInRole 返回不正确的值 - 我错过了什么?
【发布时间】:2012-01-17 20:00:14
【问题描述】:

上面的IsInRole检查不应该返回true吗?方法签名是

bool IsInRole(string role);

有人可以简要解释一下为什么这里返回 false 吗?这似乎是显而易见的事情,但似乎无法指出。

【问题讨论】:

  • 请右键单击并查看图像以查看更大的图像。很抱歉添加了图片,但我只想为这里提出的问题提供上下文。
  • 你为什么这么确定它应该返回true?你真的有一个名为“ResetPassword”的角色吗?
  • @santiagoIT:是的,请参阅来自 IPrincipalTicket.UserData

标签: asp.net security forms-authentication


【解决方案1】:

该角色似乎存储在身份验证 cookie 的用户数据部分中。但是IsInRole 方法在检查角色时不会查看它,除非您告诉它这样做。您可以查看following answer 以了解如何执行此操作的示例(在此示例中,我假设角色存储在身份验证cookie 的用户数据部分并由| 分隔=> 这是用户登录时完成)。

【讨论】:

  • 谢谢达林,这有帮助。原来有一个地方我正在做GenericPrincipal gPrincipal = new GenericPrincipal(formsIdentity, null); - 我现在将尝试在我新建 gPrincipal 时传递角色,以便IsInRole 检查将起作用。对你来说,这听起来像是缺少的部分吗?
  • @VoodooChild,这完全和绝对听起来像是您的难题中缺少的部分:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 2014-04-02
  • 1970-01-01
  • 1970-01-01
  • 2011-06-13
  • 2010-11-07
  • 1970-01-01
相关资源
最近更新 更多