protected override async Task <bool> HandleForbiddenAsync(ChallengeContext context)
        {
            var properties = new AuthenticationProperties(context.Properties);
            var returnUrl  = properties.RedirectUri;

            if (string.IsNullOrEmpty(returnUrl))
            {
                returnUrl = OriginalPathBase + Request.Path + Request.QueryString;
            }
            var accessDeniedUri = Options.AccessDeniedPath + QueryString.Create(Options.ReturnUrlParameter, returnUrl);
            var redirectContext = new PlatformRedirectContext(Context, Options, BuildRedirectUri(accessDeniedUri), properties);
            await Options.Events.RedirectToAccessDenied(redirectContext);

            return(true);
        }
 private async Task ApplyHeaders(bool shouldRedirectToReturnUrl, AuthenticationProperties properties)
 {
     Response.Headers[HeaderNames.CacheControl] = HeaderValueNoCache;
     Response.Headers[HeaderNames.Pragma]       = HeaderValueNoCache;
     Response.Headers[HeaderNames.Expires]      = HeaderValueMinusOne;
     if (shouldRedirectToReturnUrl && Response.StatusCode == 200)
     {
         var query       = Request.Query;
         var redirectUri = query[Options.ReturnUrlParameter];
         if (!StringValues.IsNullOrEmpty(redirectUri) &&
             IsHostRelative(redirectUri))
         {
             var redirectContext = new PlatformRedirectContext(Context, Options, redirectUri, properties);
             await Options.Events.RedirectToReturnUrl(redirectContext);
         }
     }
 }
        protected override async Task <bool> HandleUnauthorizedAsync(ChallengeContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var properties  = new AuthenticationProperties(context.Properties);
            var redirectUri = properties.RedirectUri;

            if (string.IsNullOrEmpty(redirectUri))
            {
                redirectUri = OriginalPathBase + Request.Path + Request.QueryString;
            }

            var loginUri        = Options.LoginPath + QueryString.Create(Options.ReturnUrlParameter, redirectUri);
            var redirectContext = new PlatformRedirectContext(Context, Options, BuildRedirectUri(loginUri), properties);
            await Options.Events.RedirectToLogin(redirectContext);

            return(true);
        }
Ejemplo n.º 4
0
 public virtual Task RedirectToAccessDenied(PlatformRedirectContext context) => OnRedirectToAccessDenied(context);
Ejemplo n.º 5
0
 public virtual Task RedirectToReturnUrl(PlatformRedirectContext context) => OnRedirectToReturnUrl(context);
Ejemplo n.º 6
0
 public virtual Task RedirectToLogin(PlatformRedirectContext context) => OnRedirectToLogin(context);