2009-06-03 86 views
1

J'utilise en fait ASP.Net MVC, mais je pense que cela s'applique également à ASP.Net.Est-ce que ASP.Net (MVC) redirige vers le formulaire de connexion lorsque je génère un HttpUnauthorizedResult?

Comment fonctionne l'autorisation J'ai conclu que ASP.Net MVC génère un HttpUnauthorizedResult lorsque l'utilisateur n'est pas autorisé et devrait l'être. Et puis ASP.Net lit de mon web.config:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880"/> 
</authentication> 

et génère l'URL et redirect résultat. Ou formulé d'une autre manière: Est-il correct de dire que l'application ASP.Net MVC ne génère jamais l'URL de redirection? Mon problème est que je veux ajouter quelques trucs à l'URL de redirection, mais la seule chose que je puisse faire est d'attraper le HttpUnauthorizedResult et de générer toute la redirection d'URL à partir de zéro. Peut-être qu'il existe une méthode dans ASP.Net qui me donnerait la redirection basée sur mon fichier de configuration afin que je n'aie pas à lire le fichier de configuration moi-même?

Répondre

0

L'URL sans substance automatique ajouté, comme ReturnURL, tout comme il est configuré, peut être récupérée avec:

System.Web.Security.FormsAuthentication.LoginUrl 
1

Essayez ceci - System.Web.Security.FormsAuthentication.RedirectToLoginPage(string extraQueryString), où extraQueryString - la chaîne de requête pour inclure l'URL de redirection.

+0

C'est certainement un pas dans la bonne direction. Cette méthode ne peut pas fonctionner exactement pour moi parce que j'ai besoin de l'URL ou du RedirectResult, je ne veux pas rediriger tout de suite. J'ai essayé le LogInUrl() sur la même classe, mais il n'a pas l'argument ReturnUrl. – Pablo