关于跳转到一个新页面,对此页面的访问权限问题
首先用户登录,查询出用户信息,储存在自定义类型AccountModel的对象am中,并赋值给Session["Account"]
其中有一项UserType,枚举类型,0~2表示不同用户类型,用作访问权限判断依据
数据库中的表tbl_PagePermission中存着每个页面的信息
ID PageName PageLink isVisitable Permission
最后所有需要验证权限的页面都继承了一个PagePermission类,其代码为
public class PagePermission : Page
{
protected override void OnPreInit(EventArgs e)
{
AccountModel am = null;
if (Session["Account"] != null)
{
am = (AccountModel)Session["Account"];
bool result = AccountService.CheckPermission(am);
if (!result)
Response.Redirect("~/Login.aspx");
}
else
Response.Redirect("~/Login.aspx");
}
}
AccountService.CheckPermission()中就是利用数据库连接等进行验证
最初我的想法是am传入AccountService.CheckPermission()
然后在AccountService.CheckPermission()中查询tbl_PagePermission,获得当前要访问的页面的所有信息
首先检查isVisitable的值,为false即不可访问,为true则继续判断Permission
查看Permission中的值是否包含UserType的值,包含则说明可以访问,不包含则不能访问
然后问题就来了,我要怎么才能在后台获得即将要访问的页面的url或者名称呢,不然根本无法进行查询啊
顺便一提:前台是jquery.ajax进行数据处理的,后台是C#,网页中跳转基本上都是点击做好的超链跳转,点击按钮跳转(比如登录时)的情况比较少
还有本来想在跳转页面的page load中建一个Session["PageName"]来解决,但发现还是不行,因为PagePermission的判定是在page load之前的
求帮助啊,字比较多,望高手们耐心看一下,快疯了