c# - Web API 2 session

标签 c# asp.net session asp.net-web-api asp.net-web-api2

我无法从 web api 2 中获取 session 数据。我已验证 cookie 正在 fiddler 中发送。

我知道 web api 2 的最佳实践是无状态的,但由于项目的要求,现在必须是全状态的。

我试过这个链接。 WebAPI 2 attribute routing enable session state

var session = SessionStateUtility.GetHttpSessionStateFromContext(HttpContext.Current)

通过上述解决方案,我在该函数上得到了一个空异常。

我还尝试通过修改路由中的请求处理程序来复制在旧 Web API 中执行此操作的方式,但这在 Web API 2 中不可用。

我目前在 mvc5 中设置了一些 session 变量。这有效并且 session 保持不变,但任何时候我在 web api 2 中尝试使用 session 时,下面的内容都是空的。

HttpContext.Current.Session

最佳答案

添加

protected void Application_PostAuthorizeRequest() 
{
    System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
}

到 global.asax

关于c# - Web API 2 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21999409/

相关文章:

c# - DataAccessLayer 和组织解决方案

c# - 在 Visual Studio 中构建完成后压缩文件

javascript - 使用 Javascript 读取 session ID

node.js - 无法读取 Layer.session 中未定义的属性 'connect.sid' - ExpressJS session

php - 注销页面后防止后退按钮

c# - 处理 asp.net C#/SQL Server 应用程序的并发问题

c# - 在 SOAP 请求中添加 KeyInfo 引用

c# - GDI+ System.Drawing.Bitmap 间歇性地给出错误参数无效

c# - 在 ASP 网页中分页?

c# - DotNetOpenAuth 模板在发布时不起作用