none
用户验证 RRS feed

  • 问题

  • 正在做一个项目,管理员页面比较多,例如有  商品添加页面  、  用户添加页面等等 , 
    所以每个页面的page load 函数都要验证一下《用户是否已经登录》和《用户权限是否满足》这个两个东西,
    代码就像这样子:

    //page  load
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!User.Identity.IsAuthenticated)
                {
                    FormsAuthentication.RedirectToLoginPage();
                }
                else
                {
                    //先判断role再进行下一步
                     
                }
            }

    以前写 asp.net mvc的时候只要 [Authorize(Roles="admin")]这句话就ok了,现在要写一大堆if else 觉得很难受,大神们有没有什么好的建议啊??

    我要怎么把代码简化才好??毕竟管理员的页面比较多,每个页面都写if else觉得不好

    2014年5月12日 6:51

全部回复

  • 1) 在Web.config中可以配置每个页面允许的role或者user,也可以在Admin文件夹下的web.config配置

    2)可以考虑建立一个页面基类,所有管理员页面,在其PageLoad中添加权限验证的代码,同时可添加一个属性用于表示访问此页面需要的Role。

    3)在 Global中统一管理权限验证

    仅供参考


    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    微软中文论坛同城社区成都QQ群:74268428
    My Blog http://kosmisch.net
    Chengdu,China

    2015年1月26日 7:35
    版主
  • 你好,

    写个公共方法或函数 岂不是 很简单。反正你是必须要验证的吧。 

    例如

    protected void GetAuthority(User.Identidy.Name) { string Ux= User.Identidy.name;

    ifxxxxxxx

    else

    xxxxxxxxxxxx
    }

    2015年1月27日 11:02