Active Directory/LDAP :: Getting User Groups / Can't Use UserPrincipal.GetGroups In System
Mar 8, 2010
I am having trouble using UserPrincipal.GetGroups in System.DirectoryServices.AccountManagement.
When I use the following code:
PrincipalSearchResult<Principal> groups = userPrincipal.GetGroups();
foreach (GroupPrincipal g in groups){
Console.WriteLine(g.DisplayName);
}
I get the error "The value for the property AttributeScopeQuery cannot be set" in the foreach loop. I also get the same error when using groups.Count()I have read things that indicate this may be due to having some Windows 2000 domain controllers in the domain and so meaning it does not support ASQ.
What is the best way of doing this? The best I have come up with, since most of the rest of my code is running fine using System.DirectoryServices.AccountManagement is using the GetUnderlyingObject method of the UserPrincipal to get a DirectoryEntry and enumerating the values of the memberOf attribute. Using LINQ the code is quite compact:
var groups = from string groupPath in
((DirectoryEntry)userPrincipal.GetUnderlyingObject()).Properties["memberOf"]
select new DirectoryEntry("LDAP://" + groupPath).Name.Replace("CN=", "");
foreach(groupName in groups){
Console.WriteLine(groupName);
}
I'm trying to get the groups a user is member of from an Open Ldap using vb.net 3.5.
Although so far I have managed to connect to the ldap server and get the user's info like sn, givenname, description, mail, adspath,
I have absolutely no information about the user's groups.
My code is like this:
Dim oEntry as New DirectoryEntry Dim oSearcher as New DirectorySearcher oEntry = New DirectoryEntry("LDAP://myServer/ou=test, dc=example, dc=com", username, pwd, AuthenticationTypes.ServerBind) oSearcher = New DirectorySearcher(oEntry, "(uid=" & uName & ")") oResult = oSearcher.FindOne() if not oResult is Nothing then Dim ADUser as DirectoryEntry ADUSer = oResult.GetDirectoryEntry() end if
Well, ADUser has no info on user membership whatsoever.
Am I doing something wrong? Should I use System.DirectoryServices.Protocols as I saw someone mentioning instead
of System.DirectoryServices or is .Protocols just for Framework 2.0?
I've been searching for a solution to get a list of the AD Groups for at specific AD user. I'll need the current user logged in and would like to query by the username. The problem is that all the solutions I find on the web uses System.DirectoryServices - and I can't find the dll in my .Net 4.0 webproject (I only have System.DirectoryServices.AccountManagement) - so I can't use any of the examples that I've found. Is there a difference way to query the AD through 4.0 compared to 2.0? I could really use some examples, articles or just good advise to get moving - I'm kind of stuck at the moment.
I am using System.directory services namespace in framework 2 to query active directory. I have used fixed user account impersonisation in the web.config file, find the code:
I have disabled anonymous access in IIS. Also i have given Read & write access to the account tang09 for the website virtual directory and Microsoft.NET folder located in windows folder. But still i get prompted for the domain username and password to access the website.
I am using Directory entry of System.Directoryservices class of Asp.net for authenticating against Sunone LDAP server. The following works fine.
DirectoryEntry entry = new DirectoryEntry("LDAP://SunOne2:42028/dc=domain,dc=com"); entry.AuthenticationType = AuthenticationTypes.None; entry.Username = "uid=thost,ou=people,dc=domain,dc=com";(replaced original values) entry.Password = password; entry.RefreshCache();
Now I want to be able to authenticate all the users of different organisation units. e.g. ou=development,ou=accounting etc., So I specified like this, entry.Username = "uid=thost,ou=people,ou=devlopment,ou=accounting, dc=domain,dc=com"; but it says "There is no such object on the server". I also tried putting ou in URL. I am not sure where should I specify this OUs to make my search broad. I found a lot on internet but no success so far.
I have read countless forums and found nothing so for so apparently what I need is an unusual request.I need a code snippet that will iterate through an AD domain account and display all properties for a given user.Has anyone ever built such a script?
If there is a code snippet that displays just the available properties of a user object, this would be sufficient. I am trying to build an application to add users to our LDAP and need to populate all our specific values however I don't have the specific property names to populate.
I created one application, and I need to authenticate local user. This user is the user who is login to his/her Personal Computer.. Main thing his that he/she does not in any DOMAIN... I want NON-DOMAIN authentication.
Is it possible to authenticate a user using userDN and password? If so, then tell me the syntax.So far i have tried to authenticate using username and password from my c# code using directoryentry which takes the parameters like domainname,username and password. But i need to authenticate using Userdn and password.
I want to store a X509 certificate to a user store in Novell viathe ".NET C# LDAP Library" that Novell has developed [URL]I can store different entries like givenName, commonName, mail, description etc. etc. Everythings works fine :)But I can't store a certificate correctly because the final encoding of the certificate will be failed.I've tried to send the entire certificate as HEX and Base64 in strings and bytes but the final encoding will still be failed.
[Code]....
So my question is:Anyone who knows how I should encode the certificate before sending it?
How to authenticate an user against a particular OU in Active Directory. If the AD holds 50 OUs I don't want to look into all 50 OUs , instead it should look into a particular OU( for eg: OU=dotnet users) to authenticate the user.
How to check if user is part of Active directory or not. I have a username, and i want to check if that user is available in the active directory. I am using .NET 4.0 version
In my organization we use nested groups. For a particular usage, we have a group (let's assume that the group name "kuku"), and the names of all the nested groups under it contains "kuku" as well.
We may assume that no other group in the LDAP has "kuku" in the name.
I need to create a filter which will return all the users which belong to one of the "kuku"s group.
Obviously, using this filter will bring only the head kukus
(&(&(objectclass=user)(objectclass=person))(memberOf=CN=kuku,cn=...rest of the group DN...))
How can I use wild card to fetch all users which belong to any kuku?
For example: (&(&(objectclass=user)(objectclass=person))(memberOf=CN=.*kuku.*))
Frist Computer act as A domain Controller that has a Active Directory,RADIUS Server,DHCP and DNS
Second Computer act as A Web Server and use Microsoft Visual Studio Team System 2008
I create a website to add user in active directory. I have 3 file:
1.Default.aspx - Let user fill their privacy information
2.ViewRegisterdata.aspx - Let user confirm their information before it's added to active directory. In this file,there is a Viewregisterdata.aspx.cs which collect user information and send to Class1.cs when users click confirm button.
3.Class1.cs - Do the process in adding user in active directory
I have a problem with a second and third files. When I run the website and go to a second page that is a ViewRegisterdata.aspx and then press a confirm button,it shows an error.
Although I inactivate a code section that do adding user to active directory and write a code to show a value that is sent from A ViewRegisterdata.aspx,It still shows a ViewDataregister.aspx and not show a Windows console.It seems it cannot send user information from a ViewRegisterData.aspx despite I include a Class1.cs into the file already
I'm working on a portal, and I need to check users conection on the ldap.
And if users are members of a special group then it works.
I've exactly used this link to make it works : http://msdn.microsoft.com/en-us/library/ff649227.aspx (almost work)
My point is : my ldap path seems good, no error anymore, when I log with my username and password.But when I querry it, it returns null, but I'm sure my user is in the group :
// Bind to the native AdsObject to force authentication. Object obj = entry.NativeObject; DirectorySearcher search = new DirectorySearcher(entry); search.Filter = "(SAMAccountName=" + username + ")"; search.PropertiesToLoad.Add("cn"); SearchResult result = search.FindOne(); if(null == result) { return false; }
I'm a normal user, i test with my account. I'm a member of the group that I'm looking for.