我正在开发一个检查ROLE_ID是否为3的页面,如果它是3那么
if ((Int32.Parse(Session["RoleID"].ToString()) == 3))
{
cmbempList.Visible = false;
}
现在我想检查ROLE_ID = 3的用户是否是导师,如果他是导师,那么他就可以看到cmbempList。
public bool CheckMentorAccess()
{
bool blnAllow = false;
try
{
string strSelectMentorQuery = "SELECT COUNT(DISTINCT MLL.LED_ID) FROM M_USER_DETAILS MUD INNER JOIN M_LEADERLED MLL "
+ "ON MLL.LED_ID = MUD.PK_ID WHERE MLL.LEADER_ID = '" + Session["UserID"].ToString()
+ "' AND MUD.ACTIVE = 1 AND MLL.START_DATE <= Getdate() AND"
+ " MLL.END_DATE > Getdate()";
int intNoOfMembers = Convert.ToInt32(cSQLHelper.myExecuteScalar(strSelectMentorQuery));
if (intNoOfMembers > 0)
{
blnAllow = true;
}
}
catch (Exception ex)
{
ExceptionLogger.LogException(ex);
blnAllow = false;
}
// Return the value
return blnAllow;
}
如果此函数返回true,并且ROLE_ID = 3,那么cmbempList将对他可见。
任何人都可以帮助我吗?
答案 0 :(得分:1)
问题是什么,你有CheckMentorAccess()函数,如果登录用户是Mentor并且你在会话变量中有Stored RULEID,则返回true,所以现在你的业务规则说明了
现在我想检查ROLE_ID = 3的用户是否是导师,如果他是导师,那么他就可以看到cmbempList 。
如果你分析这句话,它包含两个陈述
1-用户必须具有RoleId = 3
2-用户必须是导师。
所以如果你想组合这些语句,那么用户必须拥有role_id = 3,用户必须是导师。
所以在c#代码中转换上述条件
int roleId
if(int.TryParse(Session["RoleID"].ToString(),out roleId))
{
cmbempList.Visible = ((roleId == 3) && CheckMentorAccess());
}