Применяя этот метод, вы можете создать простой тестовый пример, который заимствует пользователя, аутентифицированного с помощью 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