Как я могу выдать себя за другого пользователя при открытии виртуального каталога?

У нас есть приложение ASP.NET (3.5), которое использует проверку подлинности с помощью форм для проверки подлинности учетных записей. В форме входа я также получаю токен входа в Windows с помощью LogonUser, который я использую для олицетворения вошедшего в систему пользователя для просмотра частных каталогов (файлы отображаются в GridView, а пользователь олицетворяется непосредственно перед привязкой данных). Я только что узнал, что нам также нужно выдать себя за пользователя в виртуальном каталоге. Могу ли я выдать себя за другое лицо непосредственно перед загрузкой виртуального каталога или во всем приложении без переключения на проверку подлинности Windows?


person pschorf    schedule 09.06.2009    source источник


Ответы (1)


Если вы просто выполняете одну задачу (например, доступ к сетевому ресурсу), мне нравится использовать существующую учетную запись AD, которую я создаю только для таких целей, и называю ее в коде.

Мне нравится абстрагироваться от приведенного здесь примера http://support.microsoft.com/kb/306158 во вспомогательный класс. Это позволит сделать что-то вроде этого ...

helperImpersonate hI = new helperImpersonate();

if (hI.impersonateValidUser("ADUSERNAME", "DOMAIN", "PASSWORD"))
{

   //DO STUFF HERE...  

    hI.undoImpersonation(); //undo the impersoination
}//end if impersonate is true...
person Ian Patrick Hughes    schedule 09.06.2009
comment
Это то, что я делаю в настоящее время, но я не уверен, где мы можем сделать олицетворение в нашем коде, когда вы просматриваете виртуальный каталог, или если все это обрабатывается IIS. - person pschorf; 10.06.2009
comment
Почему вы не можете получить доступ к виртуальному каталогу, используя предварительно выбранную учетную запись AD при создании виртуального каталога? Или изменить настройки безопасности каталога после его создания? - person Ian Patrick Hughes; 10.06.2009