Logo

Mvc校验用户没有登录就跳转的实现

photo

2022年05月27日

看字面意思很简单,就是判断用户是否登录了,如果没有登录就跳转到登陆页面。

没错,主要代码如下(这里就不写判断登录了,直接跳转)

首先在控制器中新建一个BaseController

public class BaseController : Controller
{
    protected override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);
        //这里判断出没有登录然后进行跳转
        Response.Redirect("/Login/Index");
 }}

public class TestController : BaseController
{
    public ActionResult Index()
    {
        return View();
    }
}

那么至此,大功告成!

可是如果你真的这么干了,我会毫不夸张的告诉你,你死定了!一点不吓人的告诉你

为什么呢?

原因很简单:断点调试发现一个严重的问题,在执行完下列代码之后

//这里判断出没有登录然后进行跳转
Response.Redirect("/Role/Index");

直至将Test控制器下的Index方法执行完毕,才在浏览器中显示了/Login/Index页面。

解决方法:

在跳转的时候,不用Response.Redirect进行跳转

而是将ActionExecutingContextResult属性赋值为我们要跳转的地址就OK了!

如下:

filterContext.Result = new RedirectResult("/Login/Index");

所有附件
该文章没有附件.
本文为原创文章,请注意保留出处!

最近闲来无事,便想着去了解一下长按录音功能,于是网上各种搜,但是都没有我想要的效果,于是决定干脆自己...recorder.js实现录音功能

热门文章

修复群晖Synology Drive client右键菜单缺失问题 本教程主要解决windows10右键菜单中没有SynologyDrive菜单的问题,整体思路是找到...修复群晖SynologyDriveclient右键菜单缺失问题 作者:Pastore Antonio
1825 浏览量
docker如何查看一个镜像内部的目录结构及其内部都有哪些文件 前言:有时候我们会在docker上下载一个镜像,或者是上传一个镜像到docker上,甚至有时候就是在...docker如何查看一个镜像内部的目录结构及其内部都有哪些文件 作者:Pastore Antonio
1806 浏览量
configure: error: Package requirements (oniguruma) were not met configure:error:Packagerequirements(oniguruma)...configure:error:Packagerequirements(oniguruma)werenotmet 作者:Pastore Antonio
1534 浏览量
Adobe Acrobat Pro 激活 这里记录了一些AdobeAcrobat的激活教程和组件。浏览量:1,687 作者:Pastore Antonio
1533 浏览量
追寻日出,找回自己 为什么我要去追寻日出?其实我是一个很懒的人,每次都起不来,直到有一次我在租房中睡到了大天亮,阳光照...追寻日出,找回自己 作者:Pastore Antonio
1514 浏览量