4
我在我的DNN模块上添加了一个检查,以便某些用户在登录时不必回答某些问题。而不是对每个单独角色进行硬编码,而是仅排除特定角色组中的任何人。这样,如果我们将来有更多的角色,我们可以将它们添加到角色组中,如果我们希望将它们排除在外。DNN检查用户是否在角色组
但是,我不知道你是如何检查用户是否在角色组中。我知道如何检查角色,但如果他们在一个组中,则不知道该组。
解决方案:这是我根据我得到的答案放在一起的代码。应该管用。
RoleGroupInfo RoleGrp = RoleController.GetRoleGroupByName(this.PortalId, "Role Group");
bool bShouldSkipQuestions = false;
if (RoleGrp != null)
{
Dictionary<string, RoleInfo> GroupChk = RoleGrp.Roles;
if (GroupChk.Count > 0)
{
foreach (var item in GroupChk.Values)
{
if (_user.IsInRole(item.RoleName))
{
bShouldSkipQuestions = true;
break;
}
}
}
}
这看起来像它会工作。要测试它,然后将我的代码添加到我的问题中,以便其他人可以看到我的方法。 – Mitchell 2012-07-30 14:44:58
我也会检查'roleGroup.Roles!= null'。 – abatishchev 2012-07-30 15:28:36
'Roles'是一个属性,如果后台字段为null,则自动初始化它。不应该存在这样的情况,即属性本身是“空”的。 – bdukes 2012-07-30 16:20:28