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


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.

Реализации

Примеры

В следующем примере кода показано, как использовать этот метод для отображения кнопки только в том случае, если пользователь находится в роли "менеджер". Для этого примера требуется именованный ButtonmanagerOnlyButton объект с начальным Visible значением falseсвойства .

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

Комментарии

Обычно вызывается IsInRole метод объекта , IPrincipal возвращаемого свойством staticThread.CurrentPrincipal . Однако можно привести CurrentPrincipal значение свойства к ссылке для явного ClientRolePrincipal вызова этого метода, как показано в разделе Пример.

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

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

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