缓存 LDAP 连接
本文关键字:连接 LDAP 缓存 | 更新日期: 2023-09-27 18:35:57
我正在开发一个内部门户,允许用户向我们管理的其他各种域请求帐户。
我必须通过LDAP检查某个帐户是否已存在,因此这就是我建立连接的方法。
const string server = "ldap.mydomain.net:636";
using (var ldapSSLConn = new LdapConnection(server))
{
var networkCredential = new NetworkCredential("user", "supersecurepassword");
ldapSSLConn.SessionOptions.SecureSocketLayer = true;
ldapSSLConn.AuthType = AuthType.Basic;
ldapSSLConn.SessionOptions.SecureSocketLayer = true;
ldapSSLConn.SessionOptions.VerifyServerCertificate = new VerifyServerCertificateCallback((con, cer) => true);
ldapSSLConn.Bind(networkCredential);
// Search happens here
// Return results
}
然后,我可以使用ldapSSLConn
搜索现有帐户。
每次我需要建立连接时,都需要 +/- 20 秒,搜索本身需要 85 毫秒。
有没有办法缓存连接?例如在Application_Start()
上打开它,然后在我需要时引用它?
我找到了一个适合我的解决方案。
我正在检查连接现在是否缓存;
if (System.Web.HttpContext.Current.Cache["LDAPConnection"] == null)
如果不是,我建立一个连接(见问题),最后缓存它:
System.Web.HttpContext.Current.Cache.Add("LDAPConnection", ldapSSLConn, null, DateTime.Now.AddHours(8), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.High, null);