C# Ldap连接引发对象引用未设置为对象错误的实例
Ldap连接引发对象引用未设置为对象错误的实例 我正在尝试连接到LDAP以对用户进行身份验证。这是我的代码,在将connction安全套接字层设置为true之后,我在connection.connect期间遇到异常 它抛出的异常对象引用未设置为对象的实例,我创建了用于连接的对象,但不知道出了什么问题。有人帮我吗C# Ldap连接引发对象引用未设置为对象错误的实例,c#,asp.net,.net,ldap,C#,Asp.net,.net,Ldap,Ldap连接引发对象引用未设置为对象错误的实例 我正在尝试连接到LDAP以对用户进行身份验证。这是我的代码,在将connction安全套接字层设置为true之后,我在connection.connect期间遇到异常 它抛出的异常对象引用未设置为对象的实例,我创建了用于连接的对象,但不知道出了什么问题。有人帮我吗 using LdapConnection = Novell.Directory.Ldap.LdapConnection; using LdapException = Novell.Dir
using LdapConnection = Novell.Directory.Ldap.LdapConnection;
using LdapException = Novell.Directory.Ldap.LdapException;
var ldapHost = WebConfigurationManager.AppSettings["LDAP_HOST"];
var ldapPort = WebConfigurationManager.AppSettings["LDAP_PORT"];
var connection = new LdapConnection {SecureSocketLayer = true};
connection.Connect(ldapHost, Convert.ToInt32(ldapPort)); // Getting exception here object reference not set to an instance of an object.
sb = new StringBuilder();
sb.Append(ldapLocation).Append(userName).Append(",").Append(ldapLocationIndia);
connection.Bind(LdapConnection.Ldap_V3, sb.ToString(), password);
请帮忙,谢谢
堆栈跟踪信息:
在Novell.Directory.Ldap.Connection.connect(字符串主机、Int32端口、Int32信号量ID)
位于Novell.Directory.Ldap.Connection.connect(字符串主机,Int32端口)
位于Novell.Directory.Ldap.LdapConnection.Connect(字符串主机,Int32端口)
在c:\Project\Production Version 2.0\Planner\Planner\Controllers\AccountController.cs中,在Planner.Controllers.AccountController.isAuthenticated(LoginModel模型)处:第106行
在c:\Project\Production Version 2.0\Planner\Planner\Controllers\AccountController.cs中的Planner.Controllers.AccountController.Login(LoginModel模型)处:第44行
在lambda_方法中(闭包、控制器基、对象[])
位于System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller,Object[]参数)
在System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext ControllerContext,IDictionary2个参数)
位于System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext ControllerContext、ActionDescriptor ActionDescriptor、IDictionary
2个参数)
位于System.Web.Mvc.Async.AsyncControllerActionInvoker.InvokeSynchronousActionMethod(ControllerContext ControllerContext,ActionDescriptor ActionDescriptor,IDictionary2个参数)
在System.Web.Mvc.Async.AsyncControllerActionInvoker.c__DisplayClass42.b__41()中
在System.Web.Mvc.Async.AsyncResultRapper.c_uuuuDisplayClass8上
1.b_uuuuuu7(IAsyncResult)
位于System.Web.Mvc.Async.AsyncResultRapper.WrappedAsyncResult`1.End()
在System.Web.Mvc.Async.asyncResultRapper.End[TResult](IAsyncResult asyncResult,对象标记)
位于System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
在System.Web.Mvc.Async.AsyncControllerActionInvoker.c_uuDisplayClass37.c_uuDisplayClass39.b_u33()中
在System.Web.Mvc.Async.AsyncControllerActionInvoker.c_uudisplayClass4f.b_uu49()配置中是否正确设置了
ldapHost
和ldaport
connection.connect()
引发的异常属于tpyeLDAPException
,因此我假设它甚至没有尝试连接。请发布异常的完整堆栈跟踪使用堆栈更新问题trace@user1557020当前位置我只是注意到你很少“得票”如有任何有用的答案/意见,我鼓励您这样做。你真的应该给那些帮助你的人一些选票!这只需要你点击一下就可以了,因为你自己的分数都不会被放弃,这是一种简单的方式,可以向那些人表明你尊重他们的辛勤付出,并负担得起帮助你的费用!当然,哥们现在就可以了。谢谢你指出我的问题mistake@user1557020你找到解决办法了吗?我在Novell.Directory.Ldap.NETStandard库中也遇到了同样的问题。如果我删除或注释SecureSocketLayer=true,它的工作状态会很好。所以端口和主机是完美的。您是否尝试了var connection=new LdapConnection();connection.SecureSocketLayer=true代码>?是的。我做了,这导致了问题,如果我评论securesocketlayer=true,它工作正常。否则就是抛出对象引用错误,我不明白。如果将对象创建和SSL设置分开,它是否有效?根据文档,只有在创建对象后才能设置securesocketlayer=true
。请参阅第1.5.3节。在您第一次发表评论后,我将SSL设置与其不工作(如果我删除SSL设置,则其工作)与SSL及其引用错误分开。