zoukankan      html  css  js  c++  java
  • ASP.NET的MVC中使用Session做身份验证(附代码下载)

    场景

    ASP.NET中MVC编程模式简介与搭建HelloWorld项目:

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106795640

    在上面使用MVC搭建起来Hello World项目时为了避免太多程序代码造成混淆。在新建MVC项目时将默认的验证调整为无身份验证。

    注:

    博客:
    https://blog.csdn.net/badao_liumang_qizhi
    关注公众号
    霸道的程序猿
    获取编程相关电子书、教程推送与免费下载。

    实现

    新建完项目后建立新的文件夹Filters,然后在此文件夹下添加类AuthorizePlusAttribute

    此类要继承AuthorizeAttribute,并重写方法OnAuthorization

    注意要添加命名空间

    using System.Web.Mvc;

    AuthorizePlusAttribute类代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    
    namespace MVCSessionTest.Filters
    {
        public class AuthorizePlusAttribute : AuthorizeAttribute
        {
            public override void OnAuthorization(AuthorizationContext filterContext)
            {
                if (Convert.ToBoolean(filterContext.HttpContext.Session["auth"]))
                {
                    //验证通过
                }
                else
                {
                    //验证失败直接丟回 401
                    base.HandleUnauthorizedRequest(filterContext);
                }
            }
        }
    }

    然后在HomeController中添加三个Action,分别模拟登录、注销和后台

            public ActionResult Login()
            {
                Session["auth"] = true;
                return RedirectToAction("Index");
            }
    
            public ActionResult Logout()
            {
                Session["auth"] = false;
                return RedirectToAction("Index");
            }
    
            [AuthorizePlus]
            public ActionResult Backend()
            {
                return Content("您已进入后台");
            }

    注意要使用AuthorizePlus注解需要添加命名空间

    using System.Web.Mvc;

    然后在index.cshtml中添加三个链接

        <p><a class="btn btn-default" href="@Url.Action("Backend")">后台 &raquo;</a></p>
        <p><a class="btn btn-default" href="@Url.Action("Login")">登录 &raquo;</a></p>
        <p><a class="btn btn-default" href="@Url.Action("Logout")">注销 &raquo;</a></p>

    运行项目

     

    如果未登录直接进入后台或者注销之后再次进入后台则会

    只有在点击登录之后才能进入后台

    示例代码下载

    https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/12584653

  • 相关阅读:
    BZOJ1036 [ZJOI2008]树的统计Count 树链剖分
    SPOJ-QTREE Query on a tree 树链剖分
    BZOJ3224 洛谷3369 Tyvj 1728 普通平衡树 splay
    BZOJ1008 [HNOI2008]越狱 快速幂
    HDU4686 Arc of Dream 矩阵
    POJ2065 SETI 高斯消元
    POJ1487 Single-Player Games 高斯消元
    HDU3306 Another kind of Fibonacci 矩阵
    Hadoop基本操作
    Hadoop命令大全
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/13260758.html
Copyright © 2011-2022 走看看