- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
当我实现 RoleProvider 类并调用 Roles.IsUserInRole(string username, string roleName) 时,代码执行首先转到方法“GetRolesForUser(string username)”。为什么是这样?当我只是在寻找该用户是否属于一个角色的单一值时,我不想迭代所有角色。这是 .NET 的角色提供程序类的限制,还是我可以做些什么来更多地控制代码的执行?
调用代码如下
if (Roles.IsUserInRole(CurrentUser.UserName, "Teacher")) {
这是 IsUserInRole 的实现
public override bool IsUserInRole(string username, string roleName) { return true; }
但是代码 GetRolesForUser 总是首先实现:
public override string[] GetRolesForUser(string username) {
string[] roles = GetAllRoles();
List<string> userRoles = new List<string>();
foreach (string role in roles) {
if (IsUserInRole(username, role)) {
userRoles.Add(role);
}
}
return userRoles.ToArray();
}
最佳答案
The RoleProvider.IsUserInRole(username, password) is used for checking roles for a given user which is not the current loggon user(for current logon user, it also use the Principal.IsInRole instead). And for RolePrincipal, it always use the GetRolesForUser to cache the roles and do the role checking among the cached role list. (source)
可以使用 Roles.Provider.IsUserInRole
而不是 Roles.IsUserInRole
关于c# - IsUserInRole 调用 GetRolesForUser?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4081618/
当我实现 RoleProvider 类并调用 Roles.IsUserInRole(string username, string roleName) 时,代码执行首先转到方法“GetRolesFor
我有一个使用 Roles.GetRolesForUser 方法的 ASP.NET 应用程序。调用在应用程序中工作正常,但是当我在引用的库中使用相同的调用时,它会引发异常。异常信息是: Object r
设想: WCF 服务使用 SqlRoleProvider 与 Sql Server 2012 数据库服务器进行身份验证。 WCF 托管在 IIS7 网络服务器上。 请看这个错误: System.Nul
razor 布局 View 中的 @Roles.GetRolesForUser() 未返回角色。 @Roles.GetRolesForUser().Count() 为 0。 虽然 @Roles.IsU
我是一名优秀的程序员,十分优秀!