asp.net中的常规认证方式枚举(涵盖mvc)(一)

从asp.net webform开发到asp.net mvc技术上发生极大的变化,我们来讲解常用认证方式

1、为什么要认证

你的网站是要管理的,不是随便人就能登陆的,所以要认证。就是对网站进行保护。

2、认证方式枚举

一、Session方式

   1、传统webform的认证就是所有要认证的页面继承一个自定义基类BasePage,然后重写OnPreRender,代码如下:

 1 namespace AaspnetAuth
 2 {
 3     public class SessionBasePage : System.Web.UI.Page
 4     {
 5         protected override void OnPreRender(EventArgs e)
 6         {
 7             base.OnPreRender(e);
 8             if (Session["UserInfo"] == null)
 9             {
10                 Response.Redirect("~/SessionLogin/SessionLogin.aspx");
11             }
12         }
13     }
14 }

退出的代码如下

 1   protected void btnlogout_Click(object sender, EventArgs e)
 2         {
 3             if (Session["UserInfo"] == null)
 4             {
 5 
 6             }
 7             else
 8             {
 9                 Session["UserInfo"] = null;
10                 Response.Redirect("SessionLogin.aspx");
11             }
12         }

二、自定义cookie模式

1、传统webform的认证就是所有要认证的页面继承一个自定义基类BasePage,然后重写OnPreRender,代码如下:

 1  public class CookieBase: System.Web.UI.Page
 2     {
 3         protected override void OnPreInit(EventArgs e)
 4         {
 5             base.OnPreInit(e);
 6             //说明没有登录过
 7             if (Request.Cookies["UserInfo"] == null)
 8             {
 9                 Response.Redirect("~/CookieLogin/CookieLogin.aspx");
10             }
11         }
12     }

登陆的代码如下,其中trueUserAccount为用户的的登录名,建议使用guid

1 HttpCookie cookie = new HttpCookie("UserInfo");//初使化并设置Cookie的名称
2                 DateTime dt = DateTime.Now;
3                 TimeSpan ts = new TimeSpan(1, 0, 0, 0, 0);//过期时间为1天
4                 cookie.Expires = dt.Add(ts);//设置过期时间
5                 cookie.Values.Add("UserName", trueUserAccount);
6                 Response.AppendCookie(cookie);
7 
8                 Response.Redirect("CookieWelcome.aspx");

退出的代码如下:

 1  protected void btnlogout_Click(object sender, EventArgs e)
 2         {
 3             HttpCookie cok = Request.Cookies["UserInfo"];
 4             if (cok != null)
 5             {
 6                 TimeSpan ts = new TimeSpan(-1, 0, 0, 0);
 7                 cok.Expires = DateTime.Now.Add(ts);//删除整个Cookie,只要把过期时间设置为现在
 8                 Response.AppendCookie(cok);
 9             }
10             Response.Redirect("CookieLogin.aspx");
11         }

三、域认证

四、单点登陆认证

五、cookie认证的延伸,采用html5的本地存储

漫思
原文地址:https://www.cnblogs.com/sexintercourse/p/5616810.html