public override bool PostProcess(BadrRequest request, BadrResponse response, out string errorMessage) { CookiesSettings cookiesSettings = SiteManager.Settings.Cookies; errorMessage = null; if ((!cookiesSettings.SessionSecure || request.IsSecure) && response.Status.IsSuccess() && request.Session != null && request.Session.SendCookie) { HttpCookieFragment sessionFragment = new HttpCookieFragment( name: CookieNames.SESSION_ID, value: request.Session.ID, path: "/", domain: request.DomainUri.Host); if(cookiesSettings != null) { if(!SiteManager.Settings.Cookies.SessionExpireAtBrowserClose) sessionFragment[HttpCookieFragment.ATTR_MAX_AGE] = cookiesSettings.SessionAge.ToString(); sessionFragment.IsSecure = cookiesSettings.SessionSecure; sessionFragment.IsHttpOnly = cookiesSettings.SessionHttpOnly; } response.Cookies[CookieNames.SESSION_ID] = sessionFragment; } return true; }
public bool PostProcess(BadrRequest wRequest, BadrResponse wResponse, out string errorMessage) { bool result = true; errorMessage = null; foreach (MiddlewareBase middleware in _middlewares) { result = middleware.PostProcess(wRequest, wResponse, out errorMessage); if (!result || !wResponse.Status.IsSuccess()) return result; } return result; }
public override bool PostProcess(BadrRequest request, BadrResponse response, out string errorMessage) { errorMessage = null; if ((!SiteManager.Settings.Cookies.CsrfSecure || request.IsSecure) && response.Status.IsSuccess() && IsValidCsrf(request)) { HttpCookieFragment csrfFragment = new HttpCookieFragment( name: CookieNames.CSRF_TOKEN, value: request.CsrfToken, path: "/", domain: request.DomainUri.Host); if(SiteManager.Settings.Cookies != null) { csrfFragment.IsSecure = SiteManager.Settings.Cookies.CsrfSecure; } response.Cookies[CookieNames.CSRF_TOKEN] = csrfFragment; } return true; }
public abstract bool PostProcess(BadrRequest request, BadrResponse response, out string errorMessage);
public static BadrResponse ServeStaticFiles(BadrRequest request, UrlArgs args = null) { string resourcePath = null; if (args != null && (resourcePath = args[STATIC_RESOURCE_GROUP_NAME]) != null) { bool reloadFile = true; bool conditionalGet = request.Headers[HttpRequestHeaders.IfModifiedSince] != null; DateTime resourceLastModificationDate = StaticFilesManager.GetLastModificationTimeUtc(resourcePath); DateTime clientLastModificationDate; if(conditionalGet) { if(DateTime.TryParse(request.Headers[Badr.Net.Http.Request.HttpRequestHeaders.IfModifiedSince], out clientLastModificationDate)) { reloadFile = resourceLastModificationDate.CompareTo(clientLastModificationDate) > 0; } } BadrResponse response; if (reloadFile){ response = new StaticResponse(request, MimeMapping.GetMimeMapping(resourcePath)) { Status = HttpResponseStatus._200, BodyBytes = StaticFilesManager.GetFileBytes(resourcePath) }; } else { response = new BadrResponse(request) { Status = HttpResponseStatus._304 }; } response.Headers.Add(HttpResponseHeaders.LastModified, resourceLastModificationDate.ToString("r")); return response; } return null; }