3

フォームで次のコードを使用していますが、エラーが発生します

public DataTable Passwordexpire()
{
   PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

   UserPrincipal userTemplate = new UserPrincipal(ctx);
   userTemplate.AdvancedSearchFilter.AccountExpirationDate(DateTime.Today.AddDays(3), MatchType.LessThanOrEquals);

   PrincipalSearcher searcher = new PrincipalSearcher(userTemplate);


  foreach (Principal foundPrincipal in searcher.FindAll())
  {
     UserPrincipal foundUser = (foundPrincipal as UserPrincipal);

     if (foundUser != null)
     {
       DataTable dt = new DataTable();
       dt.Columns.Add("AccountName");
       dt.Columns.Add("Name");
       dt.Columns.Add("Empolyee ID");
       dt.Columns.Add("Company");

       foreach (SearchResult sResultSet in Dsearch.FindAll())
       {
         DataRow dr = dt.NewRow();
           dr[0] = (GetProperty(sResultSet, "samaccountname"));
           dr[1] = (GetProperty(sResultSet, "name"));
          dr[2] = (GetProperty(sResultSet, "ExtensionAttribute2"));
          dr[3] = (GetProperty(sResultSet, "Company"));
          dt.Rows.Add(dr);
       }
       return dt;
   }
}

エラーは次のとおりです。

型または名前空間名 User Principal が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)
型または名前空間名 Principal Searcher が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)
名前「MatchType」は現在のコンテキストに存在しません

4

2 に答える 2

3

using System.DirectoryServices.AccountManagement;この Passwordexpire メソッドが存在する .cs ファイルの先頭にディレクティブがありますか?

于 2013-03-09T08:43:57.330 に答える
1

System.DirectoryServices.Net DLLへの参照を追加します。

次にザイツマンの答え:

using System.DirectoryServices.AccountManagement;
于 2013-03-09T08:44:43.180 に答える