public override ClaimsIdentity ProcessSignInResponse(string realm, string originalUrl, HttpContextBase httpContext) { var client = new OpenIdClient(Issuer.Url, MultiProtocolIssuer.Identifier); Logger.Debug(string.Format("ProcessSignInResponse")); Logger.Debug(string.Format("Issuer.Url {0}, originalUrl {1}", Issuer.Url, originalUrl)); AuthenticationResult result; try { result = client.VerifyAuthentication(httpContext); Logger.Debug(string.Format("ProviderUserId {0}", result.ProviderUserId)); } catch (WebException wex) { throw new InvalidOperationException(new StreamReader(wex.Response.GetResponseStream()).ReadToEnd(), wex); } var claims = new List<Claim> { new Claim(System.IdentityModel.Claims.ClaimTypes.NameIdentifier, result.ProviderUserId) }; claims.AddRange(result.ExtraData.Select(claim => new Claim(claim.Key, claim.Value))); var identity = new ClaimsIdentity(claims, Issuer.Identifier.ToString()); return identity; }
public override void ProcessSignInRequest(Scope scope, HttpContextBase httpContext) { Logger.Debug(string.Format("ProcessSignInRequest, Issuer.Url {0}, ReplyUrl {1}", Issuer.Url, MultiProtocolIssuer.ReplyUrl)); var client = new OpenIdClient(Issuer.Url,MultiProtocolIssuer.Identifier); client.RequestAuthentication(httpContext, MultiProtocolIssuer.ReplyUrl); }