J'utilise WebForms et le routage Asp.Net.Après avoir lancé une exception de sécurité, rediriger vers la page de connexion
Lorsque vous essayez de mettre en œuvre la sécurité sur un dossier des membres, je suis en suivant les instructions ici:
http://blogs.msdn.com/b/mikeormond/archive/2008/06/21/asp-net-routing-and-authorization.aspx
private IHttpHandler GeneratePage(string VN, RequestContext RC)
{
string virtualPath
= string.Format("~/Members/{0}.aspx", VN);
if (UrlAuthorizationModule.CheckUrlAccessForPrincipal(virtualPath,
RC.HttpContext.User,
RC.HttpContext.Request.HttpMethod))
{
if (virtualPath != null)
{
return (Page)BuildManager.CreateInstanceFromVirtualPath(virtualPath, typeof(Page));
}
}
else
{
throw new SecurityException();
}
return null;
}
}
Cependant, je ne veux juste jeter une exception de sécurité, je aime rediriger vers la page de connexion. Je préfère ne pas coder un Response.Redirect
et je ne pense pas que ce soit la bonne façon de le faire de toute façon.
Quelle est la "bonne" façon de transmettre le contrôle au moteur d'autorisation et de rediriger vers la page de connexion par défaut?
Merci. Je me demandais pourquoi vous vouliez juste lancer une erreur de sécurité dans cet espace, mais je supposais que vous feriez la redirection dans un bloc 'catch'. – Armstrongest
@ Atømix - tout dépend de qui fait la capture. vous avez dit que vous vouliez lancer et rediriger. la seule façon de le faire est si vous faites le catching et si c'est le cas, ce n'est pas une exception, c'est un cas attendu et devrait avoir un chemin de code approprié. Vous lanceriez une exception s'il n'y a rien que vous puissiez faire à propos de l'état. –