gpt4 book ai didi

c# - 重构 session 检查

转载 作者:太空宇宙 更新时间:2023-11-03 22:00:23 25 4
gpt4 key购买 nike

我在所有 Controller 中都有这个重复代码:

        var user = Session["_User"] as User;

if (user== null)
{
return RedirectToAction("Index");
}

我该如何重构它?我应该将其添加到属性还是制作 session 包装器?

什么是最好的方法?

最佳答案

使用 MasterController 扩展您的所有 Controller 并重写 OnActionExecuting 方法,如下所示

public class MasterController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var user = Session["_User"] as User;

if (user== null)
{
if(filterContext.ActionDescriptor.ActionName != "Index" || filterContext.ActionDescriptor.ControllerDescriptor.ControllerName != "ControllerThatContainIndexAction")
{
filterContext.Result = this.RedirectToAction("Index");
return;
}
}
base.OnActionExecuting(filterContext);
}
}

关于c# - 重构 session 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10366419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com