ClientRolePrincipal.IsInRole(String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает значение, указывающее, находится ли пользователь, представленный ClientRolePrincipal, в указанной роли.
public:
virtual bool IsInRole(System::String ^ role);
public bool IsInRole (string role);
abstract member IsInRole : string -> bool
override this.IsInRole : string -> bool
Public Function IsInRole (role As String) As Boolean
Параметры
- role
- String
Проверяемая роль.
Возвращаемое значение
true
, если пользователь находится в указанной роли; false
, если пользователь не находится в указанной роли или не проходит проверку подлинности.
Реализации
Примеры
В следующем примере кода показано, как использовать этот метод для отображения кнопки только в том случае, если пользователь находится в роли "manager". В этом примере требуется Button с именем managerOnlyButton
с начальным значением свойства Visiblefalse
.
private void DisplayButtonForManagerRole()
{
try
{
ClientRolePrincipal rolePrincipal =
System.Threading.Thread.CurrentPrincipal
as ClientRolePrincipal;
if (rolePrincipal != null && rolePrincipal.IsInRole("manager"))
{
managerOnlyButton.Visible = true;
}
}
catch (System.Net.WebException)
{
MessageBox.Show("Unable to access the roles service.",
"Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
Private Sub DisplayButtonForManagerRole()
Try
Dim rolePrincipal As ClientRolePrincipal = TryCast( _
System.Threading.Thread.CurrentPrincipal, ClientRolePrincipal)
If rolePrincipal IsNot Nothing And _
rolePrincipal.IsInRole("manager") Then
managerOnlyButton.Visible = True
End If
Catch ex As System.Net.WebException
MessageBox.Show("Unable to access the role service.", _
"Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End Try
End Sub
Комментарии
Как правило, вы вызовете метод IsInRoleIPrincipal, возвращаемого свойством static
Thread.CurrentPrincipal. Однако значение свойства CurrentPrincipal можно привести к ссылке ClientRolePrincipal для явного вызова этого метода, как показано в разделе "Пример".
Метод IsInRole всегда возвращает false
, если срок действия входа пользователя истек. Это не произойдет, если приложение вызывает метод IsInRole один раз вскоре после проверки подлинности. Если приложение должно получать роли пользователей в другое время, может потребоваться добавить код для отзыва пользователей, имя входа которых истекло. Если всем допустимым пользователям назначены роли, можно определить, истек ли срок действия входа, вызвав метод ClientRoleProvider.GetRolesForUser. Если роли не возвращаются, срок действия входа истек. Пример этой функции см. в GetRolesForUser методе. Эта функция необходима только в том случае, если выбран параметр Требовать повторного входа пользователей при истечении срока действия файла cookie сервера в конфигурации приложения.
Применяется к
См. также раздел
- GetRolesForUser(String)
- IPrincipal
- IsInRole(String)
- CurrentPrincipal
- клиентских служб приложений
- Практическое руководство. Настройка служб клиентских приложений