public Task Invoke(IDictionary<string, object> env) { var request = new Gate.Request(env); string userToken; string userId; if (request.Cookies.TryGetValue(Constants.UserTokenCookie, out userToken) && _authenticationTokenService.TryGetUserId(userToken, out userId)) { env["server.User"] = new GenericPrincipal(new GenericIdentity(userId), new string[0]); } return _next(env); }
public Task Invoke(IDictionary <string, object> env) { var request = new Gate.Request(env); string userToken; string userId; if (request.Cookies.TryGetValue(Constants.UserTokenCookie, out userToken) && _authenticationTokenService.TryGetUserId(userToken, out userId)) { env["server.User"] = new GenericPrincipal(new GenericIdentity(userId), new string[0]); } return(_next(env)); }
public async Task Invoke(IDictionary <string, object> env) { var httpRequest = new Gate.Request(env); var httpResponse = new OwinResponse(env); string url; Uri uri; if (!httpRequest.Query.TryGetValue("url", out url) || String.IsNullOrEmpty(url) || !Uri.TryCreate(url, UriKind.Absolute, out uri) || !ImageContentProvider.IsValidImagePath(uri) || !IsAuthenticated(env)) { httpResponse.StatusCode = 404; return; } try { var request = (HttpWebRequest)WebRequest.Create(url); request.CachePolicy = new RequestCachePolicy(RequestCacheLevel.Default); var response = (HttpWebResponse)await request.GetResponseAsync(); if (!ImageContentProvider.IsValidContentType(response.ContentType) && response.ContentLength > _settings.ProxyImageMaxSizeBytes) { httpResponse.StatusCode = 404; return; } httpResponse.SetHeader("Content-Type", response.ContentType); httpResponse.StatusCode = (int)response.StatusCode; using (response) { using (Stream stream = response.GetResponseStream()) { await stream.CopyToAsync(httpResponse.Body); } } } catch { httpResponse.StatusCode = 404; } }
public async Task Invoke(IDictionary<string, object> env) { var httpRequest = new Gate.Request(env); var httpResponse = new OwinResponse(env); string url; Uri uri; if (!httpRequest.Query.TryGetValue("url", out url) || String.IsNullOrEmpty(url) || !Uri.TryCreate(url, UriKind.Absolute, out uri) || !ImageContentProvider.IsValidImagePath(uri) || !IsAuthenticated(env)) { httpResponse.StatusCode = 404; return; } try { var request = (HttpWebRequest)WebRequest.Create(url); request.CachePolicy = new RequestCachePolicy(RequestCacheLevel.Default); var response = (HttpWebResponse)await request.GetResponseAsync(); if (!ImageContentProvider.IsValidContentType(response.ContentType) && response.ContentLength > _settings.ProxyImageMaxSizeBytes) { httpResponse.StatusCode = 404; return; } httpResponse.SetHeader("Content-Type", response.ContentType); httpResponse.StatusCode = (int)response.StatusCode; using (response) { using (Stream stream = response.GetResponseStream()) { await stream.CopyToAsync(httpResponse.Body); } } } catch { httpResponse.StatusCode = 404; } }
public Task Invoke(IDictionary<string, object> env) { var request = new Gate.Request(env); var authenticationService = _kernel.Get<IAuthenticationService>(); try { string userToken; string userId; if (request.Cookies.TryGetValue(Constants.UserTokenCookie, out userToken) && authenticationService.TryGetUserId(userToken, out userId)) { env["server.User"] = new GenericPrincipal(new GenericIdentity(userId), new string[0]); } } finally { authenticationService.Dispose(); } return _next(env); }
public Task Invoke(IDictionary <string, object> env) { var request = new Gate.Request(env); var authenticationService = _kernel.Get <IAuthenticationService>(); try { string userToken; string userId; if (request.Cookies.TryGetValue(Constants.UserTokenCookie, out userToken) && authenticationService.TryGetUserId(userToken, out userId)) { env["server.User"] = new GenericPrincipal(new GenericIdentity(userId), new string[0]); } } finally { authenticationService.Dispose(); } return(_next(env)); }