Solved

Active Directory Login failed when using C#

Posted on 2009-04-08
5
1,216 Views
Last Modified: 2013-12-24
Hell experts!
I'm facing a weird problem when connection to AD using C#.
When I run the C# project, it fails and gives me an error saying that the user or password may be invalid.
I converted the code to VB.Net and it works perfectly.
The problem is ocurring when I call the FindOne method.
What could be causing this problem?
I've attached both c# and vb.net code to this message.

Please, help.
C# code:
 

            this.AD = new DirectoryEntry(loginPath, loginUsername, loginPassword);

            var filter = "(&(objectCategory=Person) (sAMAccountName=" + username + "))";

            var diretorySearcher = new DirectorySearcher(this.AD);

            SearchResult searchResult = null;

            diretorySearcher.SearchRoot = this.AD;

            diretorySearcher.SearchScope = SearchScope.Subtree;

            diretorySearcher.Filter = filter;

            searchResult = diretorySearcher.FindOne();

            DirectoryEntry user = searchResult.GetDirectoryEntry();
 

VB.Net code:

            Me.AD = New DirectoryEntry(loginPath, loginUsername, loginPassword)

            String filter = "(&(objectCategory=Person) (sAMAccountName=" & username & "))"

            DirectorySearcher diretorySearcher = New DirectorySearcher(Me.AD)

            SearchResult searchResult = Nothing

            diretorySearcher.SearchRoot = Me.AD

            diretorySearcher.SearchScope = SearchScope.Subtree

            diretorySearcher.Filter = filter

            searchResult = diretorySearcher.FindOne()

            DirectoryEntry user = searchResult.GetDirectoryEntry()

Open in new window

0
Comment
Question by:andrepires
  • 3
  • 2
5 Comments
 
LVL 29

Expert Comment

by:Gautham Janardhan
ID: 24104297
after the first line try this
object Native = this.AD.NativeObject;

Open in new window

0
 
LVL 2

Author Comment

by:andrepires
ID: 24106630
Ok, but what should I do with that Native object?
0
 
LVL 29

Expert Comment

by:Gautham Janardhan
ID: 24106757
nothing, that line basically tries to validate the entry against AD and makes connection with AD
0
 
LVL 2

Author Comment

by:andrepires
ID: 24106998
Ok... I'll try that and let you know.
Thanks.
0
 
LVL 2

Accepted Solution

by:
andrepires earned 0 total points
ID: 24208177
Hello.
The solution did not work.
I was forced to compile an assembly created with VB.Net and consume it in my application.
Thanks for helping!
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

CCModeler offers a way to enter basic information like entities, attributes and relationships and export them as yEd or erviz diagram. It also can import existing Access or SQL Server tables with relationships.
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Video by: Steve
Using examples as well as descriptions, step through each of the common simple join types, explaining differences in syntax, differences in expected outputs and showing how the queries run along with the actual outputs based upon a simple set of dem…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now