Реклама:

JitRp.Text = string.Joir,("<b />", rpRoles); .litlr.Text = string.Join("<br />", irRoles);

)

private string[] getRoleprincipalRolest) {

return ((RolePrincipalJContext.User).GetRoles();

}

private string[] GetTokenRoles() i

List<string> groups = new List<string>(); IdentityReferenceCollection i^c = ((Windowsldentity)

Context.User.Identity).Groups.Translate(typeof(NTAccount)); foreach (NTAccount acc in ire) {

groups,Add(acc.Value);

}

return groups.ToArray();

}

</S0ript>

<html xmlns="http://www.w3.org/1999/xhtml"> <heao runat="server">

<title>RolePrincipal vs Wiroows Tckens</title>

</head> <body>

<form id="forml" runat="server"> <div>

<asp:Table runat="server" ID="_table"> <asp:TableHeaderRow Font-Bold="true"> <asp:TableCell> RoiePrincipal </asp:TableCell> <asp:TableCell>

Token </asp:TableCell> </asp:TableHeade rRow>

<asp:TableRow> <asp:TabieCell>

<asp:Literal runat="server" ID="_litRp" /> </asp:TableCell> <asp:TableCell>

<asp:Literal runat-"server" ID="_litIr" /> </asp;TableCell> </asp:Tableflow> </asp:Table> </div> </form> </body> </html>

Выходные данные можно представить и в таком виде:

RoiePrincipal

SalesUsers BUILTINVJsers

NT AUTHORITY\Authenticated Users Token

AppServer\SalesUserS BUILTINVJsers

NT AUTHORITY\Authenticated Users

На все указанные параметры влияют и настройки авторизации, производимые в файле web.config. Поскольку UrlAutkenticateModule также вызывает метод Context. User.IsInRote (в RoiePrincipal), вы должны указать имена локальной группы без машинного имени.

<authorization>

<allow users="SalesUsers" />

<deny users="«" /> </authorization>

Как вы, возможно, догадались, процесс развертывания приложения при этом упрощается. Например, вы можете создать во время развертывания набор локальных групп, которые включали бы локальные или доменные группы. Благодаря этому вам не нужно будет жестко программировать все машинные или доменные имена в коде или в файле web.config.

Однако все это работает и при обращении к hlnRole в WindowsPrincipal. В случае отсутствия доменного или машинного имени используются учетные записи локальной группы.

Как уже говорилось, никаких преимуществ использование этого провайдера не дает. Тем не менее вы можете попытаться повысить производительность приложения путем кэширования ролей.

Провайдер авторизации ролей

Этот пронайлер использует надстройку Microsoft Authorization Manager. Он может быть представлен либо файлом XML. либо контейнером приложения в Active Directory или ADAM. Служба Authorization Manager поставляется вместе с Microsoft Windows Server 2003 и обеспечивает UI и API, с помощью которых можно определять роли, сопоставлять пользователей с этими ролями и выполнять проверку ролей. Она полностью отделяется от приложения, которое в дальнейшем будет использовать этот метод хранения.


⇐ Предыдущая страница| |Следующая страница ⇒