public static HttpRequestData ToHttpRequestData( this HttpContext httpContext, IRequestStateStore requestStateStore) { var request = httpContext.Request; var uri = new Uri( request.Scheme + "://" + request.Host + request.Path + request.QueryString); var pathBase = httpContext.Request.PathBase.Value; pathBase = string.IsNullOrEmpty(pathBase) ? "/" : pathBase; IEnumerable <KeyValuePair <string, IEnumerable <string> > > formData = null; if (httpContext.Request.Method == "POST") { formData = request.Form.Select( f => new KeyValuePair <string, IEnumerable <string> >(f.Key, f.Value)); } return(new HttpRequestData( httpContext.Request.Method, uri, pathBase, formData, requestStateStore, httpContext.User)); }
private void Init( string httpMethod, Uri url, string applicationPath, IEnumerable <KeyValuePair <string, IEnumerable <string> > > formData, IRequestStateStore requestStateStore, ClaimsPrincipal user) { InitBasicFields(httpMethod, url, applicationPath, formData); User = user; var relayState = QueryString["RelayState"].SingleOrDefault(); if (relayState == null) { Form.TryGetValue("RelayState", out relayState); } RelayState = relayState; if (relayState != null) { var cookieName = StoredRequestState.CookieNameBase + relayState; StoredRequestState = requestStateStore.GetState(cookieName); } }
/// <summary> /// Ctor /// </summary> /// <param name="optionsCache">Options</param> /// <param name="optionsFactory">Factory for options</param> /// <param name="requestStateStore">Storage for request state</param> public Saml2Handler( IOptionsMonitorCache <Saml2Options> optionsCache, IOptionsFactory <Saml2Options> optionsFactory, IRequestStateStore requestStateStore) { this.optionsFactory = optionsFactory; this.requestStateStore = requestStateStore; this.optionsCache = optionsCache; }
public HttpRequestData( string httpMethod, Uri url, string applicationPath, IEnumerable <KeyValuePair <string, IEnumerable <string> > > formData, IRequestStateStore requestStateStore, ClaimsPrincipal user) { Init(httpMethod, url, applicationPath, formData, requestStateStore, user); }
public HttpRequestData( string httpMethod, Uri url, string applicationPath, IEnumerable <KeyValuePair <string, IEnumerable <string> > > formData, IRequestStateStore requestStateStore) : this(httpMethod, url, applicationPath, formData, requestStateStore, user : null) { // empty }
public static async Task Apply( this CommandResult commandResult, HttpContext httpContext, IRequestStateStore requestStateStore, string signInScheme, string signOutScheme) { httpContext.Response.StatusCode = (int)commandResult.HttpStatusCode; if (commandResult.Location != null) { httpContext.Response.Headers["Location"] = commandResult.Location.OriginalString; } if (!string.IsNullOrEmpty(commandResult.SetCookieName)) { requestStateStore?.SetState(commandResult.SetCookieName, commandResult.RequestState); } foreach (var h in commandResult.Headers) { httpContext.Response.Headers.Add(h.Key, h.Value); } if (!string.IsNullOrEmpty(commandResult.ClearCookieName)) { httpContext.Response.Cookies.Delete(commandResult.ClearCookieName); } if (!string.IsNullOrEmpty(commandResult.Content)) { var buffer = Encoding.UTF8.GetBytes(commandResult.Content); httpContext.Response.ContentType = commandResult.ContentType; await httpContext.Response.Body.WriteAsync(buffer, 0, buffer.Length); } if (commandResult.Principal != null) { var authProps = new AuthenticationProperties(commandResult.RelayData) { RedirectUri = commandResult.Location.OriginalString }; await httpContext.SignInAsync(signInScheme, commandResult.Principal, authProps); } if (commandResult.TerminateLocalSession) { await httpContext.SignOutAsync(signOutScheme ?? signInScheme); } }
protected OAuthRequest( EndPoint resourceEndPoint, OAuthService settings, string verifier, IRequestStateStore stateStore, RequestStateKey stateKey) { this.ResourceEndPoint = resourceEndPoint; this.Service = settings; this.RequestTokenVerifier = verifier; this.stateStore = stateStore; this.state = stateStore.Get(stateKey); }