Олицетворение пользователя из кода с помощью проверки подлинности с помощью форм - PullRequest
2 голосов
/ 28 июня 2010

Возможно ли выдать себя за пользователя при использовании проверки подлинности с помощью форм?

Дело в том, что мне нужен внешний логин для пользователей и внутренний сайт, который просто использует встроенную защиту Windows, а пользователей нужно выдавать себя за другого.

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

Предложения


Редактировать

Я хочу иметь элемент управления <asp:Login />, и этот элемент будет проходить проверку подлинности в Active Directory, у которой есть тот же набор пользователей, что и на компьютере Windows, на котором я хочу использовать олицетворение.

Моя проблема в том, что я не понимаю, как я могу impersoante с тем же именем пользователя и паролем, которое предоставляется элементу управления <asp:Login />.

1 Ответ

1 голос
/ 28 июня 2010

Чтобы это решение работало, вам потребуется доступ к идентификатору и паролю пользователя. Я не верю, что вы можете получить это, используя пользовательский элемент управления Login; вам нужно будет создать свою собственную форму входа и обрабатывать действия входа самостоятельно. Храните идентификатор пользователя и пароль, желательно в защищенной строке, в сеансе после проверки подлинности и когда вам необходимо получить доступ к внутреннему сайту от его имени, используйте класс Impersonator из приведенного примера, чтобы выдать себя за него с помощью учетных данных.

  using (var context = Impersonator.LogOn( username, password ))
  {
      try
      {
      ....
      }
      finally
      {
         context.Undo();
      }
  }
...