Роли авторизации аутентификации .NET логин перенаправление returnURL путаница - PullRequest
0 голосов
/ 08 декабря 2010

Должно быть что-то, чего мне не хватает в моем понимании того, как работает система аутентификации / авторизации и перенаправления входа в систему .NET.У меня есть страница admin / default.aspx, которая ограничена для пользователей с правами администратора, поэтому у меня есть, например:

<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 и затем снова возвращается на страницу входа.

Полагаю, все работает нормально, но может показаться, что я могу перенаправить на страницу входа, если пользователь не вошел в систему, но перенаправить его на другую страницу (домашнюю или по умолчанию), если он вошел, но не вошелне соответствуют требованиям роли.

Как мне это сделать?

Заранее спасибо,

Расти

1 Ответ

0 голосов
/ 08 декабря 2010

Вы можете сделать это несколькими способами:

  1. Написать пользовательский поставщик аутентификации, полученный от поставщика форм.

  2. Напишите HttpModule, я не уверен, какое событие лучше всего перехватить, так как до аутентификации у вас нет роли, после аутентификации модуль проверки подлинности с помощью форм будет перенаправлять вас настраница входа.таким образом, определение ответа на перенаправление в более поздних событиях может быть подходящим способом.(это может иметь дополнительный эффект, что все перенаправления на страницу входа для аутентифицированного пользователя перейдут на домашнюю страницу зарегистрированных пользователей)

...