zoukankan      html  css  js  c++  java
  • 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的本地存储

    漫思
  • 相关阅读:
    [css]浮动造成的影响
    [py]django的manytomany字段和后台搜索过滤功能
    [py][lc]python高阶函数(匿名/map/reduce/sorted)
    [py][lc]python的纸牌知识点
    [js]js中类的继承
    [js]js杂项陆续补充中...
    [js]js设计模式小结
    WP10的一点小问题
    JS 判断滚动底部并加载更多效果。。。。。。。。。
    This assembly may have been downloaded from the Web. ......
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/5616810.html
Copyright © 2011-2022 走看看