积极答复者
求基于ASP.NET+数据库的权限设置方法

问题
答案
-
你好,
我上面已经说了。
你的数据库里需要保存用户信息、角色信息和角色对应的页面信息。
当你访问某个需要某权限访问的页面时,你根据用户id从数据库中查处一个关于该用户能访问的页面list,然后检查当前访问的页面是否在该list中。
如果不在就重定向登录页面。
我觉得这个在后台做比较好,如果你有非要在前台做的理由,能否说说。
Microsoft Online Community Support- 已标记为答案 KeFang Chen 2010年7月12日 1:21
全部回复
-
访问什么功能的权限?多选权限是什么意思?
The following is signature, not part of post
Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
Visual C++ MVP -
-
这是我在前台的判断用户权限的代码,比较乱,想找更科学的办法。
//check user's right:
//if (!RightsClass.Rights("SYS01,C01,C02,C03,C04,C05,C06,S01"))
//{
// ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "ToolTip", "alert('没有访问该页面的权限。');window.location='"+Request.UrlReferrer.ToString()+"';", true);
//}
//else
//{
// if (RightsClass.Rights("C02"))
// {
// CRepresent.Items.FindByText(UserClass.UserInfoBySGI(AD.UserSGI()).Rows[0]["UCNName"].ToString()).Selected = true;
// CRepresent.Enabled = false;
// }
// if (RightsClass.Rights("C04"))
// {
// btNew.Enabled = brUpdate.Enabled = btDelete.Enabled = false;
// }
// if (!RightsClass.Rights("C05"))
// {
// btCards.Enabled = false;
// }
// if (!RightsClass.Rights("S01"))
// {
// btSO.Enabled = false;
// }
// if (!RightsClass.Rights("C06"))
// {
// btVisit.Enabled = false;
// }
DoSearch();
//} -
你好,
我上面已经说了。
你的数据库里需要保存用户信息、角色信息和角色对应的页面信息。
当你访问某个需要某权限访问的页面时,你根据用户id从数据库中查处一个关于该用户能访问的页面list,然后检查当前访问的页面是否在该list中。
如果不在就重定向登录页面。
我觉得这个在后台做比较好,如果你有非要在前台做的理由,能否说说。
Microsoft Online Community Support- 已标记为答案 KeFang Chen 2010年7月12日 1:21
-
楼上的方法不错,但我想知道,如果页面上有个按钮是根据权限来设置他Enable属性的,那怎么做呢?谢谢。
- 已编辑 Yonggang Song 2010年7月12日 1:02 打错字了