Roles.GetRolesForUser Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает список ролей, в которые входит пользователь.
Перегрузки
| Имя | Описание |
|---|---|
| GetRolesForUser() |
Возвращает список ролей, в которые входит пользователь, вошедший в систему. |
| GetRolesForUser(String) |
Возвращает список ролей, в которые входит пользователь. |
GetRolesForUser()
Возвращает список ролей, в которые входит пользователь, вошедший в систему.
public:
static cli::array <System::String ^> ^ GetRolesForUser();
public static string[] GetRolesForUser();
static member GetRolesForUser : unit -> string[]
Public Shared Function GetRolesForUser () As String()
Возвращаемое значение
Строковый массив, содержащий имена всех ролей, вошедшего в систему пользователя.
Исключения
Нет текущего пользователя, вошедшего в систему.
Управление ролями не включено.
Примеры
В следующем примере кода метод используется GetRolesForUser для получения списка ролей для указанного пользователя и привязки возвращаемых ролей к элементу System.Web.UI.WebControls.GridView управления. Пример файла Web.config, который обеспечивает управление ролями, см. в статье Roles.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
string[] rolesArray;
public void Page_Load()
{
if (!IsPostBack)
{
// Bind roles to GridView.
try
{
rolesArray = Roles.GetRolesForUser();
}
catch (HttpException e)
{
Msg.Text = "There is no current logged on user. Role information cannot be retrieved.";
return;
}
UserRolesGrid.Columns[0].HeaderText = "Roles for " + User.Identity.Name;
UserRolesGrid.DataSource = rolesArray;
UserRolesGrid.DataBind();
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: View User Roles</title>
</head>
<body>
<form runat="server" id="PageForm">
<h3>View User Roles</h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
<table border="0" cellspacing="4">
<tr>
<td valign="top"><asp:GridView runat="server" CellPadding="4" id="UserRolesGrid"
AutoGenerateColumns="false" Gridlines="None"
CellSpacing="0" >
<HeaderStyle BackColor="navy" ForeColor="white" />
<Columns>
<asp:TemplateField HeaderText="Roles" >
<ItemTemplate>
<%# Container.DataItem.ToString() %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView></td>
</tr>
</table>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Dim rolesArray() As String
Public Sub Page_Load()
If Not IsPostBack Then
' Bind roles to GridView.
Try
rolesArray = Roles.GetRolesForUser()
Catch e As HttpException
Msg.Text = "There is no current logged on user. Role information cannot be retrieved."
Return
End Try
UserRolesGrid.Columns(0).HeaderText = "Roles for " & User.Identity.Name
UserRolesGrid.DataSource = rolesArray
UserRolesGrid.DataBind()
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: View User Roles</title>
</head>
<body>
<form runat="server" id="PageForm">
<h3>View User Roles</h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
<table border="0" cellspacing="4">
<tr>
<td valign="top"><asp:GridView runat="server" CellPadding="4" id="UserRolesGrid"
AutoGenerateColumns="false" Gridlines="None"
CellSpacing="0" >
<HeaderStyle BackColor="navy" ForeColor="white" />
<Columns>
<asp:TemplateField HeaderText="Roles" >
<ItemTemplate>
<%# Container.DataItem.ToString() %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView></td>
</tr>
</table>
</form>
</body>
</html>
Комментарии
Метод GetRolesForUser вызывает RoleProvider.GetRolesForUser метод поставщика ролей по умолчанию для получения из источника данных ролей, в которые входит пользователь, вошедший в систему. В настоящее время пользователь, вошедший в систему, определяется свойством HttpContext.User текущего System.Web.HttpContextили Thread.CurrentPrincipal для сред размещения, отличных от HTTP. Если пользователь не вошел в систему, создается исключение. Извлекаются только роли приложения, указанного в свойстве ApplicationName .
Если CacheRolesInCookie это trueтак, результаты GetRolesForUser метода могут быть возвращены из кэша ролей, а не указанного поставщика ролей.
См. также раздел
Применяется к
GetRolesForUser(String)
Возвращает список ролей, в которые входит пользователь.
public:
static cli::array <System::String ^> ^ GetRolesForUser(System::String ^ username);
public static string[] GetRolesForUser(string username);
static member GetRolesForUser : string -> string[]
Public Shared Function GetRolesForUser (username As String) As String()
Параметры
- username
- String
Пользователь возвращает список ролей.
Возвращаемое значение
Строковый массив, содержащий имена всех ролей, в которые входит указанный пользователь.
Исключения
username равно null.
username содержит запятую (,).
Управление ролями не включено.
Примеры
В следующем примере кода метод используется GetRolesForUser для получения списка ролей для указанного пользователя и привязки возвращаемых ролей к элементу System.Web.UI.WebControls.GridView управления. Пример файла Web.config, который обеспечивает управление ролями, см. в статье Roles.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
string[] rolesArray;
public void Page_Load()
{
if (!IsPostBack)
{
// Bind roles to GridView.
try
{
rolesArray = Roles.GetRolesForUser();
}
catch (HttpException e)
{
Msg.Text = "There is no current logged on user. Role information cannot be retrieved.";
return;
}
UserRolesGrid.Columns[0].HeaderText = "Roles for " + User.Identity.Name;
UserRolesGrid.DataSource = rolesArray;
UserRolesGrid.DataBind();
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: View User Roles</title>
</head>
<body>
<form runat="server" id="PageForm">
<h3>View User Roles</h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
<table border="0" cellspacing="4">
<tr>
<td valign="top"><asp:GridView runat="server" CellPadding="4" id="UserRolesGrid"
AutoGenerateColumns="false" Gridlines="None"
CellSpacing="0" >
<HeaderStyle BackColor="navy" ForeColor="white" />
<Columns>
<asp:TemplateField HeaderText="Roles" >
<ItemTemplate>
<%# Container.DataItem.ToString() %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView></td>
</tr>
</table>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Dim rolesArray() As String
Public Sub Page_Load()
If Not IsPostBack Then
' Bind roles to GridView.
Try
rolesArray = Roles.GetRolesForUser()
Catch e As HttpException
Msg.Text = "There is no current logged on user. Role information cannot be retrieved."
Return
End Try
UserRolesGrid.Columns(0).HeaderText = "Roles for " & User.Identity.Name
UserRolesGrid.DataSource = rolesArray
UserRolesGrid.DataBind()
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: View User Roles</title>
</head>
<body>
<form runat="server" id="PageForm">
<h3>View User Roles</h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
<table border="0" cellspacing="4">
<tr>
<td valign="top"><asp:GridView runat="server" CellPadding="4" id="UserRolesGrid"
AutoGenerateColumns="false" Gridlines="None"
CellSpacing="0" >
<HeaderStyle BackColor="navy" ForeColor="white" />
<Columns>
<asp:TemplateField HeaderText="Roles" >
<ItemTemplate>
<%# Container.DataItem.ToString() %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView></td>
</tr>
</table>
</form>
</body>
</html>
Комментарии
Метод GetRolesForUser вызывает RoleProvider.GetRolesForUser метод поставщика ролей по умолчанию, чтобы получить из источника данных роли, в которые входит пользователь. Извлекаются только роли приложения, указанного в свойстве ApplicationName .
Если username он равен текущему вошедшему пользователю и CacheRolesInCookie имеет trueзначение, результаты GetRolesForUser метода могут быть возвращены из кэша ролей, а не из указанного Provider.