C
Chris Davoli
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 AND after that is the error stack.:
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
--
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
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 AND after that is the error stack.:
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
--
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