在 .NET 2.0 的自定义角色提供程序(继承自 RoleProvider)中,IsUserInRole 方法已被硬编码为始终返回 true:
public override bool IsUserInRole(string username, string roleName) { return true; }
在配置为使用此角色提供程序的 ASP.NET 应用程序中,以下代码返回 true(如预期的那样):
Roles.IsUserInRole("any username", "any rolename"); // results in true
但是,以下代码返回 false:
Roles.IsUserInRole("any rolename"); // results in false
请注意, User.IsInRole("any rolename") 也返回 false。
- 这是预期的行为吗?
- 假设仅采用角色名称的重载仍会调用重写的 IsUserInRole 是否不正确?
更新:请注意,对于采用单个字符串的版本似乎没有可用的覆盖,这导致了我在 #2 中的假设。