J'essaie d'implémenter AuthorizationHandler dans .net core 2.0 où j'ai besoin d'autoriser l'utilisateur et basé sur la condition voulue pour rediriger vers différentes méthodes d'action dans mes travaux de validation d'application ok mais comment je peux rediriger l'utilisateur à la page Accès refusé ou Connexion lorsque l'autorisation a échoué.ASP.NET Core 2.0 Rediriger l'utilisateur depuis AuthorizationHandler, HandleRequirementAsync méthode
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, HasPermissionRequirement requirement)
{
var controllerContext = context.Resource as AuthorizationFilterContext;
if (sessionManager.Session.sysUserID <= 0)
{
controllerContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Account", action = "Login", area = "" }));
return Task.FromResult(0);
}
if (Utilities.GetInt32Negative(PermissionID) == 1 || Utilities.GetInt32Negative(PermissionID) == -1)
{
if (!PagePath.Equals("~/"))
controllerContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Home", action = "NoAccess", area = "" }));
}
context.Succeed(requirement);
}
else
{
if (!PagePath.Equals("~/"))
controllerContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Home", action = "NoAccess", area = "" }));
}
return Task.FromResult(0);
}
Vous êtes pas censé faire des redirections à partir des exigences d'autorisation. Configurez votre gestionnaire d'authentification pour rediriger vers les pages correctes lorsque l'autorisation échoue. Cela se fait généralement dans 'Startup', où vous définissez les méthodes d'authentification que vous prenez en charge, etc. – juunas