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的本地存储

    漫思
  • 相关阅读:
    Centos 卸载 MySQL
    Kafka体系架构、命令、Go案例
    Go 平滑重启(优雅重启)
    etcd集群数据迁移至新集群
    ubuntu 20.04使用TLSv1
    mybatis拦截器对SQL处理,数据权限逻辑控制
    java敏感字查找和替换
    SpringBoot自定义validation验证
    java使用druid解析器解析SQL语句
    国产数据库人大金仓 KingbaseES V8 R2 在 x86_64 Linux 安装过程
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/5616810.html
Copyright © 2011-2022 走看看