关于跳转到一个新页面,对此页面的访问权限问题

再见永不永不说 2014-04-16 03:44:23
首先用户登录,查询出用户信息,储存在自定义类型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之前的


求帮助啊,字比较多,望高手们耐心看一下,快疯了
...全文
329 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
自己解决了,感谢大家 和大家的答案一样,我给母版页的跳转超链都加了class属性,然后新建了个js用来在点击跳转时post对应的页面名称到后台进行处理,然后所有可点击跳转的页面都引用这个js,就解决了 感谢~~
bdmh 2014-04-16
  • 打赏
  • 举报
回复
对,通过ajax请求,并返回用户类型
淡淡的活着 2014-04-16
  • 打赏
  • 举报
回复
``可以在跳转的时候先进AJAX判断 然后根据判断结果跳转··还有就是··进入那个页面后判断不可?如果没有 自动跳转到另一个错误页面··

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧