public async Task <bool> InvokeReturnPathAsync() { AuthenticationTicket model = await this.AuthenticateAsync(); bool flag; if (model == null) { this.Response.StatusCode = 500; flag = true; } else { QQReturnEndpointContext context = new QQReturnEndpointContext(this.Context, model); context.SignInAsAuthenticationType = this.Options.SignInAsAuthenticationType; context.RedirectUri = model.Properties.RedirectUri; model.Properties.RedirectUri = null; await this.Options.Provider.ReturnEndpoint(context); if (context.SignInAsAuthenticationType != null && context.Identity != null) { ClaimsIdentity claimsIdentity = context.Identity; if (!string.Equals(claimsIdentity.AuthenticationType, context.SignInAsAuthenticationType, StringComparison.Ordinal)) { claimsIdentity = new ClaimsIdentity(claimsIdentity.Claims, context.SignInAsAuthenticationType, claimsIdentity.NameClaimType, claimsIdentity.RoleClaimType); } this.Context.Authentication.SignIn(context.Properties, new ClaimsIdentity[1] { claimsIdentity }); } if (!context.IsRequestCompleted && context.RedirectUri != null) { if (context.Identity == null) { context.RedirectUri = WebUtilities.AddQueryString(context.RedirectUri, "error", "access_denied"); } this.Response.Redirect(context.RedirectUri); context.RequestCompleted(); } flag = context.IsRequestCompleted; } return(flag); }
public Task ReturnEndpoint(QQReturnEndpointContext context) { return(this.OnReturnEndpoint(context)); }
public Task ReturnEndpoint(QQReturnEndpointContext context) { return this.OnReturnEndpoint(context); }