Я использую WebForms и Asp.Net Routing.После сброса исключения безопасности, перенаправление на страницу входа
При попытке реализации безопасности на папку членов, я, следуя указателям здесь:
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;
}
}
Однако, я не просто хочу, чтобы бросить исключение безопасности, я бы как перенаправление на страницу входа. Я бы предпочел не жестко кодировать Response.Redirect
, и я не думаю, что это правильный способ сделать это в любом случае.
Что такое «правильный» способ передать управление механизму авторизации и перенаправить на страницу входа по умолчанию?
Спасибо. Мне было интересно, почему вы хотите просто выбросить ошибку безопасности в этом пространстве, но я предполагал, что вы сделаете переадресацию в блоке 'catch'. – Armstrongest
@ Atømix - все зависит от того, кто занимается ловлей. вы сказали, что хотите бросить и перенаправить. единственный способ, которым вы можете это сделать, - это то, что вы делаете ловушку, и если это так, это не исключение, это ожидаемый случай и должен иметь соответствующий кодовый путь. Вы бы выбрали исключение, если вы ничего не можете сделать о состоянии. –