zoukankan      html  css  js  c++  java
  • .net MVC3实现不同的角色用不同的登录页面

    标题说得含糊,明确一些,就是如何用.net的窗体验证的机制让不同的角色被导向到不同的登录页面。

    我们都知道设置窗体验证的各属性的时候,有一个验证未通过的话跳转到哪个url,可是假如系统中不同角色的登录页面是不同的话,你该如何处理呢?

        <authentication mode="Forms">
          <forms loginUrl="~/Login" timeout="2880" />
        </authentication>

    我们这么处理,不同的登录页面的路径字符串肯定有它自己的特征,把它抽出来用来作判断依据。

    我们用一个通用的login页做转向,也就是说,事实上它只是做跳转,而非真实登录。在这个页面里面,我们判断ReturnUrl有什么特征,跟上一步我们总结出来的特征做对比,符合某个特征,就是某种用户,这时候再手动redirect到该类用户需要对应的登录页就可以了,在MVC3下:

            // 登录页跳转处理页面
            // GET: /Login
            public RedirectResult Login()
            {
                string url = Request["ReturnUrl"];
                if (string.IsNullOrEmpty(url))
                {
                    return new RedirectResult("/User/Login");//默认用户的登录页面
                }
                else if (url.ToLower().Contains("/jk"))
                {
                    return new RedirectResult("/jka/Login" + "?ReturnUrl=" + url);
                }
                else
                {
                    return new RedirectResult("/User/Login" + "?ReturnUrl=" + url);
                }
            }

    这样,只要是没有通过用户验证的,都会带着当前的网址被跳转到本项目的/login页,我们根据当前网址含不含”jk”这个特征来判断是否管理员的路径(这个逻辑完全由你们自己的项目定,可以更严格更科学些)

    测试通过

  • 相关阅读:
    17.正则表达式
    16.os模块-shutil模块-tarfile压缩模块
    15.序列化模块-时间模块-zip压缩模块
    第一章 单变量线性回归
    如何跑通MonoRTM模型的官方例子
    PHP命名规范
    js中要声明变量吗?
    php抓取网站图片源码
    InnoDB和MyISAM区别总结
    php分页代码。
  • 原文地址:https://www.cnblogs.com/walkerwang/p/2559388.html
Copyright © 2011-2022 走看看