Мамонтобой, сын Большой Волосатой (wasilij) wrote in csharp_ru,
Мамонтобой, сын Большой Волосатой
wasilij
csharp_ru

asp.net vs ldap

Дано: есть небольшая страничка, собранная на коленке. Вводится юзернейм и пароль и нижеприведенная процедура лезет в Active Directory проверить их правильность.

Это работает, но через какое-то время начинается падеж по таймауту в момент вызова ldap.
Посоветуйте, люди добрые, где копать на предмет определения - кто виноват.
Либо AD не отвечает в положенное время, либо руки кривы. Либо еще что. В последний раз постарался предусмотреть уборку мусора.
Буду благодарен конструктивным советам. Спасибо.



Copy Source | Copy HTML
  1. public void IdAuthenticated(

  2.          string username, string pwd)

  3. {

  4.  

  5.     string _userName = username;

  6.     string _password = pwd;

  7.  

  8.  

  9.     System.DirectoryServices.DirectoryEntry entry =

  10.     new System.DirectoryServices.DirectoryEntry(@"LDAP://campus", @"CAMPUS\" + _userName, _password);

  11.  

  12.     using (entry)

  13.     {

  14.         object obj;

  15.  

  16.         try

  17.         {

  18.             obj = entry.NativeObject;

  19.         }

  20.         catch

  21.         {

  22.             //unable to create ldap object

  23.             //Response.Write("unable to create ldap object");

  24.             lblError.Visible = true;

  25.  

  26.             //Logger(false, txtLogin.Text);

  27.             return;

  28.         }

  29.         System.DirectoryServices.DirectorySearcher search =

  30.             new System.DirectoryServices.DirectorySearcher(entry);

  31.  

  32.         using (search)

  33.         {

  34.  

  35.             search.Filter = "(SAMAccountName=" + _userName + "*)";

  36.             search.PropertiesToLoad.Add("extensionAttribute15");

  37.             search.PropertiesToLoad.Add("extensionAttribute14");

  38.             search.PropertiesToLoad.Add("memberOf");

  39.             System.DirectoryServices.SearchResult result = search.FindOne();

  40.  

  41.             if (null == result)

  42.             {

  43.                 //unable to find

  44.                 lblBadLogin.Visible = true;

  45.                 //Response.Write("0");

  46.                 return;

  47.             }

  48.             else

  49.             {

  50.                 //System.DirectoryServices.DirectoryEntry m_objUserEntry = result.GetDirectoryEntry();

  51.  

  52.                 //{   

  53.  

  54.  

  55.                 //catch

  56.                 //{

  57.                 //unable to find

  58.                 //return;

  59.                 //}.

  60.             }

  61.         }

  62.     }

  63.     entry.Close();

  64.     entry.Dispose();

  65. }

  66.  

Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

  • 9 comments