找出何时将成员添加到Active Directory组

时间:2015-09-01 20:27:25

标签: c# asp.net-mvc active-directory directoryservices

我从Active Directory获取有关用户和组的信息。我可以通过扩展方法获得各种属性值。

public static string GetProperty(this Principal principal, string property)
{
    DirectoryEntry directoryEntry = principal.GetUnderlyingObject() as DirectoryEntry;

    if (directoryEntry.Properties.Contains(property))
    {
        return directoryEntry.Properties[property].Value.ToString();
    }

    return string.Empty;
}

我面临的问题是,当用户添加到群组时,我需要获取更深层次的信息,例如 ?我希望能够通过C#做到这一点。这可能吗?可能使用这些安全事件? https://support.microsoft.com/en-us/kb/174074

使用ASP.NET MVC,C#,DirectoryServices.dll

1 个答案:

答案 0 :(得分:0)

假设您的计算机设置为收集这些事件,您可以阅读事件日志以获取您正在寻找的信息......我写了这个示例来获取logoff事件。您可以在MSDN上查找事件ID。

using System.Diagnostics;

namespace ReadEventLogs
{
  class Program
  {
     public static void Main(string[] args)
     {
        System.Diagnostics.EventLog eventLog1 = new System.Diagnostics.EventLog("Security", ".");

        foreach(EventLogEntry entry in eventLog1.Entries)
        {
          //Event ID 4624 LOGON
          //EVent ID 4634 LOGOFF
          if (entry.InstanceId == 4634)
          {
            Console.WriteLine(entry.Message);
          }
        }
      }
   }
}

如果未指定计算机名称或服务器,则将从本地计算机"."

中读取事件日志