asp.net-core-webapi - 会话存储在 asp.net 核心 web api 中返回 null
问题描述
在我的 asp.net core web api 3.1 应用程序中,我尝试添加会话状态,但它总是返回 null。在应用程序中,我安装了 Microsoft.AspNetCore.Session(2.2.0)。
我还在 Startup.cs 的 ConfigureServices 方法中添加了以下代码
services.AddDistributedMemoryCache();
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(10);
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = true;
});
和
app.UseSession();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
在中间件管道中。
我还添加了以下代码作为会话扩展
public static class SessionHelper
{
public static void Set<T>(this ISession session, string key, T value)
{
session.SetString(key, JsonConvert.SerializeObject(value));
}
public static T Get<T>(this ISession session, string key)
{
var value = session.GetString(key);
return value == null ? default : JsonConvert.DeserializeObject<T>(value);
}
}
Finally, I Set session data
SessionHelper.Set<User>(HttpContext.Session, "user", userInfo);
and tried to get as
SessionHelper.Get<User>(HttpContext.Session, "user");
但是我在获得会话价值时总是得到空值。
解决方案
推荐阅读
- nginx - 试图过度工作来使用子域的 wallabg 根要求
- go - Go sync.pool 比 make 慢很多吗?
- javascript - 用 ajax 响应数据替换部分视图
- linux - Perl 搜索和替换
- mysql - MySQL Workbench,不断收到错误 1064 错误
- angular - CanLoad、Lazy 模块和 take(1)
- symfony - 使用迁移管理数据的 Symfony Doctrine 只读实体
- python - 具有 SyncManager 类的 python 中多进程优先级队列的队列函数
- python - 如何在一列Python中打印出具有最大值的CSV文件行
- ubuntu-16.04 - ubuntu 中的编译故障错误“SSL_CTX_ctrl”从指针目标类型中丢弃“const”限定符 [-Werror=discarded-qualifiers]