Après avoir parcouru la section MVC sur CodePlex, j'ai remarqué que l'attribut [Authorize] dans MVC renvoie un HttpUnauthorizedResult() lorsque l'autorisation échoue (codeplex AuthorizeAttribute class).Attribut d'autorisation MVC + HttpUnauthorizedResult + FormsAuthentication
Dans la source de HttpUnauthorizedResult() de CodePlex est le code (je ne suis pas autorisé à entrer dans une autre URL que mon représentant est pas assez élevé, mais remplacer les chiffres sur l'URL ci-dessus avec 22929 # 266476):
// 401 is the HTTP status code for unauthorized access - setting this
// will cause the active authentication module to execute its default
// unauthorized handler
context.HttpContext.Response.StatusCode = 401;
En particulier, le commentaire décrit le gestionnaire non autorisé par défaut du module d'authentification.
Je ne peux pas sembler trouver des informations sur ce défaut gestionnaire non autorisé. En particulier, je n'utilise pas FormsAuthentication et lorsque l'autorisation échoue, j'obtiens une page d'erreur IIS 401 moche.
Est-ce que quelqu'un sait sur ce gestionnaire par défaut non autorisé, et en particulier comment FormsAuthentication crochets se pour la remplacer?
J'écris une application très simple pour mon équipe de football qui confirment ou nient si elles peuvent jouer un match particulier. Si j'active FormsAuthentication dans web.config, la redirection fonctionne, mais je n'utilise pas FormsAuthentication et j'aimerais savoir s'il existe une solution de contournement.
Quel type d'authentification utilisez-vous? – Zote
Voulez-vous autoriser du tout? Quel est le résultat final que vous recherchez en ce qui concerne l'authentification? –
J'ai écrit mon propre petit module d'authentification qui attribue une identité et des rôles. Le [Authorize] doit vérifier si l'utilisateur peut visiter la page pour confirmer qu'il peut jouer dans un match particulier. S'ils ne sont pas autorisés à jouer, en fonction d'un rôle, au lieu de donner une erreur 401 qui est assez inutile, je veux leur donner des informations plus utiles sur les raisons pour lesquelles ils ne peuvent pas jouer. Surcharger cette 401 semble la manière logique de faire ceci, mais je suis surpris de voir à quel point il ya peu de documentation sur ce gestionnaire non autorisé par défaut – Anthony