asp.net – 可以从Web API访问HttpContext.Current.Session
发布时间:2020-12-15 18:48:50 所属栏目:asp.Net 来源:网络整理
导读:是否可以通过WebAPI访问HttpContext.Current.Session?我们可以让它继承IRequiresSession吗? 我有一个通用处理程序在我要删除的API调用之后执行会话集。 public void AccountController : ApiController,IRequiresSessionState{public void Login(){setsess
是否可以通过WebAPI访问HttpContext.Current.Session?我们可以让它继承IRequiresSession吗?
我有一个通用处理程序在我要删除的API调用之后执行会话集。 public void AccountController : ApiController,IRequiresSessionState { public void Login() { setsession(){} } } 解决方法
在技??术上,是的,虽然我真的建议不要这样做 – REST API应该是完全无状态的(Cookie和其他客户端状态是可以的)。
如果你绝对必须这样做,你可以像这样抓住HTTP上下文: var context = Request.Properties["MS_HttpContext"] as HttpContext; 此时您只需使用其Session属性来获取会话。 请注意,这会破坏System.Net.Http承担的某些合同 – 具体来说,这意味着您的API控制器永远不能被自我托管,因为它们与ASP.NET相连。如果您确定这一点,并且事实上,您的API控制器可能无法从Web场正常工作,除非您重新构建所有要使用分布式会话的内容 – 那么请继续。 美国也可以使用IRequiresSessionState,但是您不能在控制器本身上使用它,您需要在HttpControllerHandler上使用它,并将其设置为RouteHandler。这个方法在07年1月被讨论。同样,我不能强烈地推荐这个想法,它违反了Web API的基本原理 – 但是,如果你有一个非常好的理由,那么这是另一种选择多一点可重用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何从FilterAttribute中获取当前的Url?
- asp.net-mvc – 无论如何让mvc框架验证我的action参数,就像
- ASP.NET MVC授权:角色的权限
- asp.net – 获取用户及其角色的列表
- asp.net-mvc – Kendo UI Grid ASP.NET MVC Wrapper Parame
- asp.net-mvc – 如何在主机上运行ASP.Net MVC应用程序?
- ASP.Net WebApi身份验证和安全性
- ASP.NET MVC实现简单的文件上传与下载
- asp.net-mvc-3 – ASP.NET MVC3 Razor – @ *做什么?
- asp.net-mvc – ASP.NET MVC:Controller.HandleUnknownAct
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC检查角色里面的视图
- asp.net-mvc – ASP.NET MVC ModelState始终对Fl
- 在Entity Framework中使用存储过程(二):具有继
- asp.net-mvc – 如何获得html.ActionLink结果文本
- 防止ASP.Net中的重复回发(C#)
- asp.net-mvc – 在ASP MVC中,如何将新视图和文件
- asp.net-mvc – 具有持久HTTP连接的IDbConnectio
- 通过HTTPS在ASP.NET中安全的会话cookie
- asp.net-mvc – Asp mvc 3 noobie:为什么代码优
- asp.net – Route属性上的RouteOrder属性在哪里?
热点阅读