次の方法で共有


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 します。

実装

次のコード例では、このメソッドを使用して、ユーザーが "マネージャー" ロールに含まれている場合にのみボタンを表示する方法を示します。 この例では、初期 Visible プロパティ値が falsemanagerOnlyButton という名前の Button が必要です。

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 メソッドを 1 回呼び出した場合には発生しません。 アプリケーションが他の時点でユーザー ロールを取得する必要がある場合は、ログインの有効期限が切れたユーザーを再検証するコードを追加できます。 有効なすべてのユーザーがロールに割り当てられている場合は、ClientRoleProvider.GetRolesForUser メソッドを呼び出してログインの有効期限が切れているかどうかを判断できます。 ロールが返されない場合、ログインの有効期限が切れています。 この機能の例については、GetRolesForUser メソッドを参照してください。 この機能は、アプリケーション構成でサーバー Cookie の有効期限が切れるたびにユーザーが再度ログオンすることを要求する を選択した場合にのみ必要です。

適用対象

こちらもご覧ください