Поделиться через


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, возвращаемого свойством staticThread.CurrentPrincipal. Однако значение свойства CurrentPrincipal можно привести к ссылке ClientRolePrincipal для явного вызова этого метода, как показано в разделе "Пример".

Метод IsInRole всегда возвращает false, если срок действия входа пользователя истек. Это не произойдет, если приложение вызывает метод IsInRole один раз вскоре после проверки подлинности. Если приложение должно получать роли пользователей в другое время, может потребоваться добавить код для отзыва пользователей, имя входа которых истекло. Если всем допустимым пользователям назначены роли, можно определить, истек ли срок действия входа, вызвав метод ClientRoleProvider.GetRolesForUser. Если роли не возвращаются, срок действия входа истек. Пример этой функции см. в GetRolesForUser методе. Эта функция необходима только в том случае, если выбран параметр Требовать повторного входа пользователей при истечении срока действия файла cookie сервера в конфигурации приложения.

Применяется к

См. также раздел