В качестве обжорства для непроверенных сексуальных приемов я принял System.Web.Routing
в своем приложении веб-форм для управления навигацией и тому подобным. Кроме того, я надеюсь переместить безопасность на основе ролей из web.config в само определение маршрута, чтобы я мог сказать «этот маршрут доступен только для ролей x, y».
Итак, у меня есть класс, который реализует IRouteHandler, и, прежде чем он пытается загрузить определенную страницу, он проверяет, находится ли пользователь в своем наборе разрешенных ролей. Мой вопрос, если нет, как мне перенаправить на страницу входа в этом обработчике? Я знаю, что в этом случае можно загрузить страницу входа в систему, но я бы предпочел чистое перенаправление со страницей returnto и всем.
public IHttpHandler GetHttpHandler(RequestContext requestContext) {
if ( AllowedRoles != null )
{
bool allowed = false;
for ( int i = 0; i < AllowedRoles.Length; i++ )
{
if ( requestContext.HttpContext.User.IsInRole( AllowedRoles[i] ) )
{
allowed = true;
break;
}
}
if ( !allowed )
{
???
}
}