.NETMVC 使用过滤器完成未登录拦截[通俗易懂]

.NETMVC 使用过滤器完成未登录拦截[通俗易懂].NETMVC使用过滤器完成未登录拦截。

大家好,又见面了,我是你们的朋友全栈君。

实现功能:当程序未登录时不能通过URL访问其他页面。

具体:未登录时访问其他页面会自动跳转到登陆页面。

1.创建MVC项目

不过多累述。

2.创建过滤器

.NETMVC 使用过滤器完成未登录拦截[通俗易懂]

如图可创建一个文件夹,把拦过滤器类收录在内。

过滤器ActionFilter.cs代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace ContosoUniversity.Helper
{
    public class ActionFilter : ActionFilterAttribute   //继承过滤器类
    {
       
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //判断session是否为空,为空则跳转到登入页面
            if (filterContext.HttpContext.Session["UserName"]==null)
            {
                filterContext.HttpContext.Response.Redirect("Login/Index");    //参数为自己写的登入页面的url
            }
        }
    }
}

3.设置Session

.NETMVC 使用过滤器完成未登录拦截[通俗易懂]

 如图在自己登入成功的代码段中设置参数。

4.设置过滤器

在自己Controller层中的每一个方法上添加 [Helper.ActionFilter] 即可。

.NETMVC 使用过滤器完成未登录拦截[通俗易懂]

.NETMVC 使用过滤器完成未登录拦截[通俗易懂]

 自此未登录拦截已经完成了。可自己运行程序通过url访问其他页面进行判断。

5.完善功能

上面功能还是不够完善的,要再添加一个退出登录完善程序。

在自己的登录代码中添加一个新方法

代码如下:

        //退出登录
        public ActionResult Exits()
        {
            Session["UserName"] = null;
            return RedirectToAction("Index");   //重新运行导向其他方法,此处为导向首页
        }

在主页面的视图中添加以下代码,如图所示

.NETMVC 使用过滤器完成未登录拦截[通俗易懂]

<td>
    @Html.ActionLink("退出登入", "Exits", "Login")
</td>

我的程序页面如图:

.NETMVC 使用过滤器完成未登录拦截[通俗易懂]

 点击退出登录后,再不能通过url访问其他页面。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158177.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【webservice】Java JAX-WS和JAX-RS webservice「建议收藏」

    【webservice】Java JAX-WS和JAX-RS webservice「建议收藏」一、webservice请求的工作原理:客户端——&gt;阅读WSDL文档(根据文档生成SOAP请求)——&gt;发送到Web服务器——&gt;交给WebService请求处理器——&gt;处理SOAP请求——&gt;调用WebService——&gt;生成SOAP应答——&gt;Web服务器通过http的方式交给客户端详细描述如下:无论使用什么工具/语言编写的webser…

    2022年7月25日
    12
  • Ubuntu中的dpkg命令「建议收藏」

    Ubuntu中的dpkg命令「建议收藏」Linux命令学习系列之dpkg命令详解   普通dpkg用法   dpkg-i安装一个Debian包裹文件,如你手动下载的文件。   dpkg-c列出的内容。   dpkg-I从中提取包裹信息。   dpkg-r移除一个已安装的包裹。   dpkg-L列出安装的所有文件清单。同时请看dpkg-c来检查一个.deb文件的

    2022年5月22日
    33
  • 吐血总结!50道Python面试题集锦(附答案)「建议收藏」

    吐血总结!50道Python面试题集锦(附答案)「建议收藏」Python是目前编程领域最受欢迎的语言。在本文中,我将总结Python面试中最常见的50个问题。每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出,找到一份高薪工作。这些面试题涉及Python基础知识、Python编程、数据分析以及Python函数库等多个方面。Q1、Python中的列表和元组有什么区别?Q2、Python的主要功能是什么?Python是一种解释型…

    2022年6月10日
    33
  • 【原创】让你的系统轻松预览AI,PSD,EPS,CDR缩略图!

    【原创】让你的系统轻松预览AI,PSD,EPS,CDR缩略图!不知道怎么回事,我机子上的IllustratorCS3搞上之后还是无法预览AI和EPS的缩略图,有时候需要选用素材的时候,面对着很多的文件无法预览,只能一个一个猜着看,今天终于无法忍受了.于是上网查了一下.原来搞定很简单,只需要把那些大软件的一些DLL文件搞进系统就行了.下边是整理的一些补丁,不用安装,只需要拷贝到特定目录然后再倒入注册表文件就行了.文件包里有具体的使用方法.文件:…

    2022年4月30日
    61
  • Visio 2013 Professional专业版密钥

    Visio 2013 Professional专业版密钥Visio2013产品密钥分享,在安装时可以使用以下密钥:C2FG9-N6J68-H8BTJ-BW3QX-RM3B32NYF6-QG2CY-9F8XC-GWMBW-29VV8FJ2N7-W8TXC-JB8KB-DCQ7Q-7T7V3VXX6C-DN3HQ-3CRXG-RF4KT-YG7V3B3C7Q-D6NH2-2VRFW-HHWDG-FVQB6TCWJK-N6GFH-8…

    2022年6月24日
    74
  • 安装keil5(MDK)及导入pack包教程

    安装keil5(MDK)及导入pack包教程首先说明的是我安装的Keil版本为KeilV5.29.0.01、安装软件右键管理员权限运行安装包设置安装路径以及pack的存放路径随意输入FirstName和E-mail安装驱动完成软件安装,然后可以先关闭弹出的PackInstall(一会再添加)2、激活一下软件打开桌面的KeilFile→LicenseManagement(我之前注册过了)右…

    2022年5月27日
    2.0K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号