Question

En glouton pour les techniques sexy non éprouvées que j’ai adoptées System.Web.Routing dans mon application Web Forms pour gérer la navigation, etc. De plus, j'espère déplacer la sécurité basée sur les rôles de web.config vers les définitions de route elles-mêmes afin que je puisse dire & "Cette route n'est disponible que pour les rôles x, y &";

J'ai donc la classe qui implémente IRouteHandler et avant de tenter de charger une page particulière, elle vérifie si l'utilisateur est dans son ensemble de rôles autorisés. Ma question est, si ce n'est pas le cas, comment puis-je rediriger vers la page de connexion dans ce gestionnaire? Je sais qu'il est possible de charger la page de connexion dans ce cas, mais je préférerais une redirection en clair avec & "Returnto &"; page et tous.

public IHttpHandler GetHttpHandler(RequestContext requestContext) {

if ( AllowedRoles != null )
{
    bool allowed = false;

    for ( int i = 0; i < AllowedRoles.Length; i++ )
    {
        if ( requestContext.HttpContext.User.IsInRole( AllowedRoles[i] ) )
        {
            allowed = true;
            break;
        }
    }

    if ( !allowed )
    {
        ???
    }
}
Était-ce utile?

La solution

Il est possible de faire une redirection à partir de GetHttpHandler. Il suffit d'utiliser:

requestContext.HttpContext.Response.Redirect("login.aspx");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top