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 возвращаемого свойством static
Thread.CurrentPrincipal . Однако можно привести CurrentPrincipal значение свойства к ссылке для явного ClientRolePrincipal вызова этого метода, как показано в разделе Пример.
При истечении допустимого времени в системе метод IsInRole всегда возвращает значение false
. Это не произойдет, если приложение вызывает IsInRole метод один раз вскоре после проверки подлинности. Если необходимо, чтобы приложение извлекало роли пользователей в другое время, вы можете добавить код для повторной проверки пользователей, чье допустимое время в системе истекло. Если всем допустимым пользователям назначены роли, вы можете выявлять истечение допустимого времени, вызывая метод ClientRoleProvider.GetRolesForUser . Если роли не возвращаются, значит время истекло. Пример реализации этой возможности — метод GetRolesForUser . Данная функция необходима лишь в случае, если в параметрах приложения вы выбрали пункт Требовать, чтобы пользователи повторяли вход, если у файла cookie сервера истек срок действия.
Применяется к
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по