Должно быть что-то, что я не вижу в своем понимании того, как работает система аутентификации/авторизации и входа в систему .NET. У меня есть страница администратора/default.aspx, которое ограничено административными пользователями, поэтому у меня есть, например:Роли аутентификации авторизации .NET login redirct returnURL confusion
<configuration>
<system.web>
<authorization>
<allow roles="admin" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
Когда пользователь получает здесь, если он не является администратором, он перенаправляется на страницу входа в систему в качестве указанный в web.config:
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name="someName" timeout="60" path="/">
</forms>
</authentication>
с возвратного URL (который выглядит как ReturnUrl =% 2fAdmin% 2fDefault.aspx). Теперь, если пользователь снова войдет в систему с учетными данными, которые не соответствуют спецификации роли «admin», он перенаправляется на страницу admin/default, а затем снова возвращается на страницу входа в систему.
Я думаю, что все это работает нормально, но, казалось бы, я мог бы перенаправить на страницу входа в систему, если пользователь не вошел в систему, но перенаправляет его на другую страницу (дома или по умолчанию), если он вошел в систему, но не выполняет соответствуют требованиям ролей.
Как я могу это сделать?
Спасибо заранее,
Расти
Благодарим за отзыв. Тем временем Ive придумывает работу, следуя идеям этого блога: http://geekswithblogs.net/ranganh/archive/2005/04/25/37598.aspx, и получается похожее на ваше предложение №2 , На странице входа я проверяю, есть ли у пользователя уже аутентификация и есть ли returnURL - если это так, я просто перенаправляюсь на домашнюю страницу. Я бы подумал, что существует более формальное решение, использующее настройку безопасности .Net, но сейчас это работает. – rusty 2010-12-08 17:56:58