Теперь, если вы создадите страницу Default.aspx, как показано ниже, с конфигурированным элементом <identity>, то результат будет выглядеть, как на рис. 22.17.
<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<b>Authenticated:</b> <%= User.Identity.Name %>
<b>Impersonated:</b>
<%= System.Security.Principal.WindowsIdentity.GetCurrent().Name %>
</div>
</form>
</body>
</html>
Рис. 22.17. Конфигурируемое заимствование прав
с фиксированным именем и паролем пользователя
Конфигурируемое заимствование прав позволяет вам подменить пользователя на все время запроса. Если вам нужно более тонкое управление, такое как заимствование прав пользователя только для части запроса страницы, то вы должны выполнять ее самостоятельно в своем коде.
Ключом к программному заимствованию прав пользователя является метод WindowsIdentity.Impersonate(). Этот метод устанавливает заимствование прав для заданной учетной записи. Вы идентифицируете учетную запись, у которой хотите заимствовать права, применяя маркер учетной записи. Маркеры учетных записей — это то, что использует Windows для отслеживания пользователей после того, как подтверждены их удостоверения. Если у вас есть маркер пользователя, вы можете его заимствовать.
предыдущая следующая страница вначало главы оглавление
921