.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访问其他页面。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • docker服务启动,重启,关闭命令

    docker服务启动,重启,关闭命令最近刚学习dockerdocker启动命令,docker重启命令,docker关闭命令启动systemctlstartdocker守护进程重启sudosystemctldaemon-reload重启docker服务systemctlrestartdocker重启docker服务sudoservicedockerrestart关闭docker…

  • 内网渗透基础_内网穿透技术详解

    内网渗透基础_内网穿透技术详解整理下内网渗透的思路

  • sd/tf卡槽是什么_usb电源线接法图解

    sd/tf卡槽是什么_usb电源线接法图解SDIO接线作为SD的4-bit传输模式下的接法,在RK3399上的应用,实现双TF卡无法识别闪迪卡解决办法1.硬件接线图如上图是SDIO接口接为TF接口的电路实现双TF卡功能,模式是4-bit,注意22R电阻要加上,尽量靠近3399摆放,但是调试的时候遇到一个问题,其他类型卡都可以识别,唯独闪迪卡无法识别,找了很久,最后发现TF卡电源VDD需要接3V0才可以解决。2,查看了资料,发现VDD关系到读卡的电压问题,如下图,闪迪卡在插入的时候会告知系统是否需要切换1.8…

  • 20191207-CHKDSK命令修复磁盘教程「建议收藏」

    20191207-CHKDSK命令修复磁盘教程「建议收藏」WIN7下的磁盘突然不能打开。在网上找DiskGenius,结果只能显示可以找到哪些文件,但是不能恢复文件!如果你想恢复文件,是要付费的!本来想找WINPE下的DiskGenius,想想还得准备1TB的移动硬盘呀!(1TB的磁盘出错了!)没有想到直接使用chkdsk几分钟就可以解决问题了!MicrosoftWindows[版本6.1.7601]版权所有(c)2009MicrosoftCorporation。保留所有权利。C:\User…

    2022年10月28日
  • 小案例GitHub地址收藏「建议收藏」

    小案例GitHub地址收藏「建议收藏」小案例GitHub地址收藏说明:平时用到的小案例会收藏到此处点击标题直接进入原创者位置并会标明作者js轮播图支持移动端制作人:hishionH5页面唤起APP/移动端网页打开APP作者:ihziluoh…

  • 分布式爬虫部署[通俗易懂]

    分布式爬虫部署[通俗易懂]【服务器端】1.下载redis,RedisDesktopManagerredis。2.修改配置文件(找到redis下的redis.windows.conf双击打开,找到bind并修改为0.0.0.0,然后protected-mode“no”3.打开cmd命令行进入redis的安装目录,输入redis-server.exeredis.windows.conf回车,保持程序一直开着。如果不是这个界面,证明redis服务已经开启了,需要redis-clishutdow

    2022年10月26日

发表回复

您的电子邮箱地址不会被公开。

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