c# - 使用SignalR时如何访问hangfire中的Session(IDashboardAuthorizationFilter的实现中的Authrize方法)?
问题描述
我正在使用 hangfire 并且出于授权目的,我试图在 Authorize([NotNull] DashboardContext context) 方法中访问为空的会话值。请注意,这个问题是在我将 SignalR 合并到我的应用程序中之后遇到的。
如果我删除“app.MapSignalR();” 来自startup.cs的行,我能够成功访问会话
public void Configuration(IAppBuilder app)
{
...
app.MapSignalR(); //if I remove this line, session is accessible
...
}
public class MyRestrictiveAuthorizationFilter : IDashboardAuthorizationFilter{
public bool Authorize([NotNull] DashboardContext context)
{
HttpSessionStateBase session = ((System.Web.HttpContextWrapper)(owinEnvironment["System.Web.HttpContextBase"])).Session; //Which is null
session = HttpContext.Current.Session; //Also Null
}
}
请注意,我在 startup.cs 的 Configuration 方法中引入“app.MapSignalR()”后,会话值为 null
解决方案
推荐阅读
- android-studio - 在列和行下对齐卡片中的文本
- python - 如何正确使用 time.delta?
- c - 使用 fread() 的错误位置
- java - Gson fromJson 返回空数据
- javascript - 添加被动侦听器
- python - 如何在 Flutter 应用程序中使用 python 代码?
- ios - Swift,是否可以在导航栏标题中使用 SF 符号?
- javascript - React Context Api 和 State hooks 突变
- node.js - 从数据库中输出数据到页面,node.js
- node.js - 为什么 Knex (PostgreSQL) 查询总是返回空对象,而通过从 JSON POST 请求检索的电子邮件进行查询?