Bir kullanıcının tüm kullanıcı gruplarını numaralandırmak zorunda kalmadan C# kullanarak belirli bir AD kullanıcı grubuna ait olup olmadığını belirlemenin en iyi yolu nedir. Bu, tek bir LDAP sorgusu veya araması kullanılarak yapılabilir mi?Bir kullanıcının belirli bir AD Grubuna ait olup olmadığını belirleyin. Net
cevap
Grupları sıralamanız gerektiğini düşünüyorum.
çeşitli teknikler için bu iki cevaplar göz at:See if user is part of Active Directory group in C# + Asp.net
Eğer geçerli kullanıcı kontrol ediyoruz ve istediğiniz grubun adını biliyorsanız How to write LDAP query to test if user is member of a group?
, sen Bütün gruplar arasında numaralandırmaya gerek yok.
Public Function IsInGroup(ByVal GroupName As String) As Boolean
Dim MyIdentity As System.Security.Principal.WindowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent()
Dim MyPrincipal As System.Security.Principal.WindowsPrincipal = New System.Security.Principal.WindowsPrincipal(MyIdentity)
Return MyPrincipal.IsInRole(GroupName)
End Function
Benzer C#: Burada VB.NET örnek kod farklı bir kullanıcının üyeliğini ya da her neyse kontrol etmek çimdik gerekirse
private static bool IsInGroup(string GroupName)
{
System.Security.Principal.WindowsIdentity MyIdentity = System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.WindowsPrincipal MyPrincipal = new System.Security.Principal.WindowsPrincipal(MyIdentity);
return MyPrincipal.IsInRole(GroupName);
}
fazla örnek, WindowsIdentity documentation bulunabilir.
Bu bana çok yardımcı oldu. Farklı bir kullanıcının üyeliğini kontrol etmeniz gerekiyorsa şunu yapın: var userPrincipal = new WindowsPrincipal (yeni WindowsIdentity (kullanıcı adı)); –
Bu çalışır, ancak sadece bazıları için tüm gruplar için bilgi almayacaksınız. Kullanıcının üyesi olduğu grupların tam listesini almak için şu cevabı kontrol edin: (http://stackoverflow.com/questions/5252108/query-from-ldap-for-user-groups) – Roboblob
İlginç. Teşekkürler, @Roboblob! – ewall
olası kopyası [Kullanıcının C# + Asp.net içindeki Active Directory grubunun bir parçası olup olmadığına bakın] (http://stackoverflow.com/questions/2188954/see-if-user-is-part-of-active- dizin-grup-in-c-asp-net) –
olası bir kopyası [Kullanıcının bir grubun üyesi olup olmadığını sınamak için LDAP sorgusu nasıl yazılır?] (http://stackoverflow.com/questions/1032351/how-to- yazma-ldap-sorgu-test-if-kullanıcı-üyesi-of-a-grubu) –