Share via


ClientRolePrincipal.IsInRole(String) Yöntem

Tanım

tarafından ClientRolePrincipal temsil edilen kullanıcının belirtilen rolde olup olmadığını belirten bir değer alır.

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

Parametreler

role
String

Denetlenecek rol.

Döndürülenler

true kullanıcı belirtilen roldeyse; false kullanıcı belirtilen rolde değilse veya kimliği doğrulanmamışsa.

Uygulamalar

Örnekler

Aşağıdaki örnek kod, yalnızca kullanıcı "yönetici" rolünde olduğunda düğme görüntülemek için bu yöntemin nasıl kullanılacağını gösterir. Bu örnek, ilk Visible özellik değeri falseolan bir adlandırılmış managerOnlyButton değer gerektirirButton.

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

Açıklamalar

Normalde, özelliği tarafından staticThread.CurrentPrincipal döndürülen yöntemini IPrincipal çağıracaksınızIsInRole. Ancak, Örnek bölümünde gösterildiği gibi bu yöntemi açıkça çağırmak için özellik değerini bir ClientRolePrincipal başvuruya dönüştürebilirsinizCurrentPrincipal.

IsInRole Kullanıcı oturum açma süresinin dolması durumunda yöntemi her zaman döndürülecektirfalse. Uygulamanız kimlik doğrulamasından IsInRole kısa bir süre sonra yöntemini çağırırsa bu durum oluşmaz. Uygulamanızın başka zamanlarda kullanıcı rollerini alması gerekiyorsa, oturum açma süresi dolan kullanıcıları yeniden doğrulamaya kod eklemek isteyebilirsiniz. Tüm geçerli kullanıcılar rollere atanmışsa, yöntemini çağırarak ClientRoleProvider.GetRolesForUser oturum açma süresinin dolup dolmadığını belirleyebilirsiniz. Hiçbir rol döndürülmezse oturum açma süresinin dolması gerekir. Bu işlevin bir örneği için yöntemine GetRolesForUser bakın. Bu işlevsellik yalnızca uygulama yapılandırmanızda sunucu tanımlama bilgisinin süresi dolduğunda kullanıcıların yeniden oturum açmasını gerektir'i seçtiyseniz gereklidir.

Şunlara uygulanır

Ayrıca bkz.