public ActionResult SignOut() { ScAuthenticationManager.Logout(); var disco = DiscoveryClient.GetAsync(this.IdentityProviderUrl).Result; return(this.Redirect(disco.EndSessionEndpoint)); }
public ActionResult SignIn(string id_token, string state) { var result = HttpContext.Request.Cookies["TempCookie"]; if (result == null) { throw new InvalidOperationException("No temp cookie"); } if (string.IsNullOrWhiteSpace(result.Values["state"]) || string.IsNullOrWhiteSpace(result.Values["nonce"]) || !string.Equals(state, result.Values["state"])) { throw new InvalidOperationException("invalid state or nonce"); } var claimsPrincipal = this.ValidateIdentityToken(id_token, result.Values["nonce"]); ScAuthenticationManager.Login(claimsPrincipal); HttpContext.Response.Cookies.Remove("TempCookie"); return(this.Redirect(LoggedInUrl)); }