ClientRolePrincipal.IsInRole(String) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 false
olan 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, static
Thread.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.