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”这个特征来判断是否管理员的路径(这个逻辑完全由你们自己的项目定,可以更严格更科学些)

    测试通过

  • 相关阅读:
    C#进阶-Linq-join
    C#进阶-Linq
    C#-string-stringBuilder
    C#-继承-多态
    Spring基础
    JQuery基本操作
    Oracle数据库基础操作
    AJAX前端后端
    AJAX异步提交(前端)
    js基本操作
  • 原文地址:https://www.cnblogs.com/walkerwang/p/2559388.html
Copyright © 2011-2022 走看看