【发布时间】:2015-05-12 22:34:06
【问题描述】:
我读过在 web api 2 中使用启用会话的有效方法如下:
protected void Application_PostAuthorizeRequest()
{
System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.ReadOnly);
}
我还创建了一个继承自AuthorizationFilterAttribute 并覆盖OnAuthorization 方法的类。
但是这个事件永远不会被调用 - 我做错了什么?
【问题讨论】:
-
AFAIK WebAPI2 应该是无状态的,因此使用不同的授权方法。
-
是的。Web API 应该是“RESTFUL”,因此是无状态的。
-
我知道 http 是无状态的。不过对我帮助不大……
-
您需要会话的用例是什么?就个人而言,这是我关闭任何新的 asp.net 项目的第一件事 - 它是性能瓶颈,只会在您需要时阻碍未来的横向扩展。
-
感谢 MacB。我们目前有很多需要会话的 Web 服务,并且由于使用了
属性,服务对会话具有读/写访问权限,这会导致会话状态阻塞。在 web api 中,我相信可以授予对会话的只读访问权限,这不会阻止。这个想法是迁移到 web api 以提高性能。
标签: c# asp.net-web-api