Применяя этот метод, вы можете создать простой тестовый пример, который заимствует пользователя, аутентифицированного с помощью IIS, и затем возвращается к исходной личности:

private void Page_Load(object sender, System.EventArgs e)
{
  if (User is WindowsPrincipal)
  {
    DisplayIdentity();
    // Заимствовать права у идентичности IIS.
    WindowsIdentity id;
    id = (WindowsIdentity)User.Identity;
    WindowsImpersonationContext impersonateContext;
    impersonateContext = id.Impersonate();
    DisplayIdentity();
    // Вернуться к исходному ID.
    impersonateContext.Undo();
    DisplayIdentity();
  }
  else
  {
     // Пользователь не аутентифицирован Windows.
     // Сгенерировать исключение, чтобы выполнить другие шаги.
  }
}

На рис. 22.18 демонстрируется результат.

Рис. 22.18. Программное заимствование прав пользователя

Резюме

В этой главе было показано, как Windows-аутентификация в ASP.NET позволяет IIS проверять личность пользователей. Вы также узнали о различных типах аутентификации, о том, как извлекать информацию о пользователе, и как заимствовать права у пользователей, чтобы запускать код от имени различных учетных записей Windows. В следующей главе вы узнаете об использовании расширенных правил авторизации, применяемых к Windows-аутентификации и аутентификации форм.

 

 

предыдущая    следующая страница    вначало главы    оглавление

924

Hosted by uCoz