public async Task <bool> InvokeReturnPathAsync()
        {
            AuthenticationTicket model = await this.AuthenticateAsync();

            bool flag;

            if (model == null)
            {
                this.Response.StatusCode = 500;
                flag = true;
            }
            else
            {
                SinaReturnEndpointContext context = new SinaReturnEndpointContext(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(SinaReturnEndpointContext context)
 {
     return this.OnReturnEndpoint(context);
 }
 public Task ReturnEndpoint(SinaReturnEndpointContext context)
 {
     return(this.OnReturnEndpoint(context));
 }