DocSpace-buildtools/common/ASC.Common/Web/AbstractHttpAsyncHandler.cs

36 lines
1.1 KiB
C#
Raw Normal View History

namespace ASC.Common.Web;
public abstract class AbstractHttpAsyncHandler // : IHttpAsyncHandler, IReadOnlySessionState
2019-05-15 14:56:09 +00:00
{
public bool IsReusable => false;
2019-05-15 14:56:09 +00:00
private Action<HttpContext> _processRequest;
private IPrincipal _principal;
private CultureInfo _culture;
2019-05-15 14:56:09 +00:00
public void ProcessRequest(HttpContext context)
{
Thread.CurrentThread.CurrentCulture = _culture;
Thread.CurrentThread.CurrentUICulture = _culture;
Thread.CurrentPrincipal = _principal;
//HttpContext.Current = context;
OnProcessRequest(context);
}
2019-05-15 14:56:09 +00:00
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
{
_culture = Thread.CurrentThread.CurrentCulture;
_principal = Thread.CurrentPrincipal;
_processRequest = ProcessRequest;
2019-05-15 14:56:09 +00:00
return _processRequest.BeginInvoke(context, cb, extraData);
}
2019-05-15 14:56:09 +00:00
2022-02-08 11:07:28 +00:00
public void EndProcessRequest(IAsyncResult result)
{
_processRequest.EndInvoke(result);
}
2019-05-15 14:56:09 +00:00
public abstract void OnProcessRequest(HttpContext context);
}