Files
Umbraco-CMS/src/Umbraco.Web/WebApi/SessionHttpControllerRouteHandler.cs

32 lines
1.1 KiB
C#
Raw Normal View History

2017-05-12 14:49:44 +02:00
using System.Web;
using System.Web.Http.WebHost;
using System.Web.Routing;
using System.Web.SessionState;
namespace Umbraco.Web.WebApi
{
/// <summary>
2017-07-20 11:21:28 +02:00
/// A custom WebApi route handler that enables session on the HttpContext - use with caution!
2017-05-12 14:49:44 +02:00
/// </summary>
/// <remarks>
/// WebApi controllers (and REST in general) shouldn't have session state enabled since it's stateless,
2017-07-20 11:21:28 +02:00
/// enabling session state puts additional locks on requests so only use this when absolutley needed
2017-05-12 14:49:44 +02:00
/// </remarks>
internal class SessionHttpControllerRouteHandler : HttpControllerRouteHandler
{
protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
{
return new SessionHttpControllerHandler(requestContext.RouteData);
}
/// <summary>
/// A custom WebApi handler that enables session on the HttpContext
2017-07-20 11:21:28 +02:00
/// </summary>
2017-05-12 14:49:44 +02:00
private class SessionHttpControllerHandler : HttpControllerHandler, IRequiresSessionState
{
public SessionHttpControllerHandler(RouteData routeData) : base(routeData)
{ }
}
}
2017-07-20 11:21:28 +02:00
}