Aracılığıyla paylaş


ClientRolePrincipal.IsInRole(String) Yöntem

Tanım

ClientRolePrincipal tarafından 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

Kullanıcının belirtilen rolde olup olmadığını true; Kullanıcının belirtilen rolde olup olmadığını veya kimliğinin doğrulanmadığını false.

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 managerOnlyButton adlı bir Button gerektirir.

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, staticThread.CurrentPrincipal özelliği tarafından döndürülen IPrincipalIsInRole yöntemini çağırırsınız. Ancak, Örnek bölümünde gösterildiği gibi bu yöntemi açıkça çağırmak için CurrentPrincipal özellik değerini bir ClientRolePrincipal başvurusuna dönüştürebilirsiniz.

IsInRole yöntemi, kullanıcı oturum açma süresinin dolması durumunda her zaman false döndürür. Uygulamanız kimlik doğrulamasından kısa bir süre sonra IsInRole yöntemini çağırırsa bu durum oluşmaz. Uygulamanızın diğer zamanlarda kullanıcı rollerini alması gerekiyorsa, oturum açma süresi dolan kullanıcıları yeniden doğrulamaya yardımcı olacak kod eklemek isteyebilirsiniz. Tüm geçerli kullanıcılar rollere atanırsa, ClientRoleProvider.GetRolesForUser yöntemini çağırarak 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şleve bir örnek için GetRolesForUser yöntemine 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 seçtiyseniz gereklidir.

Şunlara uygulanır

Ayrıca bkz.