共用方式為


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 如果使用者不在指定的角色或未驗證。

實作

範例

下列範例程式代碼示範如何在用戶處於「管理員」角色時,才使用此方法來顯示按鈕。 此範例需要名為 managerOnlyButtonButton,且其初始 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

備註

一般而言,您將呼叫 staticThread.CurrentPrincipal 屬性所傳回之 IPrincipalIsInRole 方法。 不過,您可以將 CurrentPrincipal 屬性值轉換成 ClientRolePrincipal 參考,以明確呼叫此方法,如範例一節所示。

如果使用者登入已過期,IsInRole 方法一律會傳回 false。 如果您的應用程式在驗證后不久呼叫 IsInRole 方法,則不會發生這種情況。 如果您的應用程式必須在其他時間擷取使用者角色,您可能會想要新增程式代碼來重新驗證登入已過期的使用者。 如果所有有效的使用者都指派給角色,您可以呼叫 ClientRoleProvider.GetRolesForUser 方法來判斷登入是否已過期。 如果未傳回任何角色,則登入已過期。 如需這項功能的範例,請參閱 GetRolesForUser 方法。 只有在您已選取 要求使用者再次登入時,才需要此功能,只要伺服器 Cookie 在應用程式組態中 過期。

適用於

另請參閱