首页 / 问答 / [.NET Core].NET Core 3/.NET 5应用程序编程中如何在ActionFilterAttribute过滤器中获取Session数据呢?

[.NET Core].NET Core 3/.NET 5应用程序编程中如何在ActionFilterAttribute过滤器中获取Session数据呢?

0

在.NET Core 3+或者.NET 5的Web应用程序中,如果需要在ActionFilterAttribute过滤器中获取当前请求上下文中的Session应该如何操作呢?

使用Session[key]这种方式,编译器会报错。

示例过滤器代码如下:

using System;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.Filters;

namespace SessionDemo
{
    public class SessionCheckAttribute: ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            var userName = Session["user_name"]; // 编译器报错
            Console.WriteLine($"Current user name in session: {userName}");
        }
    }
}
回复 [×]
提交评论
请输入评论内容

1 个回答

  • 0

    如果是获取字符串,可以使用context.HttpContext.Session.GetString(key)方法来获取,完整示例代码如下:

    Startup.cs

    SessionCheckAttribute.cs

    UserController.cs

    运行结果如图:

    Rector的个人主页

    Rector

    2021-01-27 回答

    我来回答