当前位置: 移动技术网 > IT编程>开发语言>.net > .net MVC使用Session验证用户登录(4)

.net MVC使用Session验证用户登录(4)

2018年04月28日  | 移动技术网IT编程  | 我要评论

鹰獒,驻京办主任3txt下载,移动破碎站价格

用最简单的session方式记录用户登录状态

1.添加defaultcontroller控制器,重写onactionexecuting方法,每次访问控制器前触发

public class defaultcontroller : controller
  {
    protected override void onactionexecuting(actionexecutingcontext filtercontext)
    {
      base.onactionexecuting(filtercontext);
      var controllername = filtercontext.actiondescriptor.controllerdescriptor.controllername;

      var username = session["username"] as string;
      if (string.isnullorempty(username))
      {
        //重定向至登录页面
        filtercontext.result = redirecttoaction("index", "login", new { url = request.rawurl});
        return;
      }

    }
  }

2.登录控制器

public class logincontroller : controller
  {
    // get: login
    public actionresult index(string returnurl)
    {
      if (session["username"] != null)
      {
        return redirecttoaction("index", "home");
      }
      viewbag.url = returnurl;
      return view();
    }

    [httppost]
    public actionresult index(string name, string password, string returnurl)
    {
      /*
        添加验证用户名密码代码
      */
      session["username"] = name;
      if (url.islocalurl(returnurl) && returnurl.length > 1 && returnurl.startswith("/") && !returnurl.startswith("//") && !returnurl.startswith("/\\"))
      {
        return redirect(returnurl);
      }
      else
      {
        return redirecttoaction("index", "home");
      }
    }

    // post: /account/logoff
    [httppost]
    public actionresult logoff()
    {
      session["username"] = null;
      return redirecttoaction("index", "home");
    }
  }

3.需要验证的控制器继承defaultcontroller

public class homecontroller : defaultcontroller
  {
    public actionresult index()
    {
      return view();
    }
  }

这种方式适合比较小的项目

优点:简单,易开发
缺点:无法记录登录状态,而且session方式容易丢失

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网