2 votes

Autorisation dans le projet MVC

J'ai une page de connexion dans le projet MVC et j'ai créé cette configuration d'autorisation.

Comment puis-je accéder à la page d'inscription?

4voto

Yarx Points 5999

En fonction de la version de MVC que vous utilisez, la pratique commune que je vois maintenant dans MVC3/4 est de plutôt que de restreindre l'accès à des actions spécifiques, de restreindre l'accès à toutes les actions, en ajoutant Authorize() en tant que filtre global, puis d'accorder l'accès à quelques actions spécifiques en utilisant l'attribut AllowAnonymous() pour agir comme une liste blanche d'actions qui n'ont pas besoin d'être protégées. (Comme "Login", "Register", etc).

Global.asax

protected void Application_Start()
{
    filters.Add(new AuthorizeAttribute());
}

AccountsController.cs

[AllowAnonymous]
public ActionResult Login()
{
    //Effectuer la connexion...
}

Ensuite, votre web.config contiendrait simplement ceci

0voto

testCoder Points 2546

Par défaut, vous devriez aller à la méthode d'action Register() du contrôleur Account

// GET: /Account/Register

Conformément à votre fichier web.config : essayez d'ajouter ceci dans le web.config avant la balise .

0voto

Spencer Sullivan Points 182

Un +1 à Nick Albrecht, mais j'ai trouvé une ambiguïté avec "filters" donc j'ai dû creuser davantage.

En fait, il semble que filters.Add(new AuthorizeAttribute()); ce code appartient à App_Start

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
        filters.Add(new AuthorizeTokens.AuthorizeWithMessage());
    }
}

et FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters) est appelé dans Application_Start.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X