Re: LDAP Auth Problem - COM interop



Actually here is the error message...

Server Error in '/FormsAuthAd' Application.
--------------------------------------------------------------------------------

The requested authentication method is not supported by the server
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information about
the error and where it originated in the code.

Exception Details: System.Runtime.InteropServices.COMException: The
requested authentication method is not supported by the server

Source Error:


Line 22: 'Try
Line 23: 'Bind to the native AdsObject to force authentication.
Line 24: Dim obj As Object = entry.NativeObject
Line 25: Dim search As DirectorySearcher = New
DirectorySearcher(entry)
Line 26:


Source File: C:\Inetpub\wwwroot\FormsAuthAd\LdapAuthentication.vb Line: 24

Stack Trace:


[COMException (0x80072027): The requested authentication method is not
supported by the server]
System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
System.DirectoryServices.DirectoryEntry.Bind()
System.DirectoryServices.DirectoryEntry.get_NativeObject()
FormsAuthAd.FormsAuth.LdapAuthentication.IsAuthenticated(String domain,
String username, String pwd) in
C:\Inetpub\wwwroot\FormsAuthAd\LdapAuthentication.vb:24
ASP.Logon_aspx.Login_Click(Object sender, EventArgs e) in
c:\inetpub\wwwroot\FormsAuthAd\logon.aspx:21
System.Web.UI.WebControls.Button.OnClick(EventArgs e)

System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler
sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain() +1292




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.1.4322.2032; ASP.NET
Version:1.1.4322.2032
--
Chris Davoli



"Chris Davoli" wrote:

Joe,
below is the error. Is there anything you can think of?

Also, I am going to buy the book this weekend.

Can I download these samples from chapter 12?

What is this .Net 2.0 ActiveDirectoryMembershipProvider? Where can I find
some info on it?

Chris


Server Error in '/FormsAuthAd' Application.
--------------------------------------------------------------------------------

Error authenticating user. The requested authentication method is not
supported by the server
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information about
the error and where it originated in the code.

Exception Details: System.Exception: Error authenticating user. The
requested authentication method is not supported by the server

Source Error:


Line 38:
Line 39: Catch ex As Exception
Line 40: Throw New Exception("Error authenticating user. " &
ex.Message)
Line 41: End Try
Line 42:


Source File: C:\Inetpub\wwwroot\FormsAuthAd\LdapAuthentication.vb Line: 40

Stack Trace:


[Exception: Error authenticating user. The requested authentication method
is not supported by the server]
FormsAuthAd.FormsAuth.LdapAuthentication.IsAuthenticated(String domain,
String username, String pwd) in
C:\Inetpub\wwwroot\FormsAuthAd\LdapAuthentication.vb:40
ASP.Logon_aspx.Login_Click(Object sender, EventArgs e) in
c:\inetpub\wwwroot\FormsAuthAd\logon.aspx:21
System.Web.UI.WebControls.Button.OnClick(EventArgs e)

System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler
sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain() +1292




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.1.4322.2032; ASP.NET
Version:1.1.4322.2032


--
Chris Davoli



"Joe Kaplan" wrote:

There should be more details of the COM error in the stack trace. Can you
provide that? Also, that sample from MS kind of sucks. We have a much
better one in our book (IMO) in ch 12. Ch 12 isn't the free chapter from
the website, but the code samples are there for download.

LDAP auth is a thorny problem that can get you into trouble. Are you sure
you need to do it this way? Also, can you use the .NET 2.0
ActiveDirectoryMembershipProvider instead?

Joe K.

--
Joe Kaplan-MS MVP Directory Services Programming
Co-author of "The .NET Developer's Guide to Directory Services Programming"
http://www.directoryprogramming.net
--
"Chris Davoli" <ChrisDavoli@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:7A98D5F7-9CA5-4471-9A14-3BB8AFCCCB52@xxxxxxxxxxxxxxxx
Environment: Win XP, VS2003, Active Directory
I'm trying to use LDAP to authenticate users. I used article
http://support.microsoft.com/?id=326340
How to authenticate against the Active Directory by using forms
authentication and Visual Basic .NET, but am having a COM interop error
when
I do the IsAuthenticated try to create an object entry.NativeObject ie;
Dim
obj As Object = entry.NativeObject

The COM interop error is <error: an exception of type:
{System.Runtime.InteropServices.COMException} occurred>

I'm thinking that there is some kind of COM component that is either not
registered, or not there.

Can anyone help me?

Here is the code:

Public Function IsAuthenticated(ByVal domain As String, ByVal
username As String, ByVal pwd As String) As Boolean

Dim domainAndUsername As String = domain & "\" & username
Dim entry As DirectoryEntry = New DirectoryEntry(_path,
domainAndUsername, pwd)

Try
'Bind to the native AdsObject to force authentication.
Dim obj As Object = entry.NativeObject
Dim search As DirectorySearcher = New
DirectorySearcher(entry)

search.Filter = "(SAMAccountName=" & username & ")"
search.PropertiesToLoad.Add("cn")
Dim result As SearchResult = search.FindOne()

If (result Is Nothing) Then
Return False
End If

'Update the new path to the user in the directory.
_path = result.Path
_filterAttribute = CType(result.Properties("cn")(0),
String)

Catch ex As Exception
Throw New Exception("Error authenticating user. " &
ex.Message)
End Try

Return True
End Function



--
Chris Davoli




.