2009-03-25 2 views
3

私は、ローカルマシンのログインユーザーを取得するために、さまざまな.NETクラスライブラリを調べようとしています。 これまでのところ、これは、ユーザーの名前を返しますローカルWindowsの取得C#のユーザーログインセッションのタイムスタンプ

System.Security.Principal.WindowsPrincipal LoggedUser = System.Threading.Thread.CurrentPrincipal as 
System.Security.Principal.WindowsPrincipal; 
// This returns the username 
LoggedUser.Identity.Name 

、しかし、セッションの詳細を取得するどのような方法があり、あなたはADまたはユーザーに見るであろうものが...セッション継続時間などの状況をログインユーザー、ワークステーションのロックなどのアクション、ユーザーの基本的な存在。

ご意見がありましたら、大変感謝しています。 ありがとうございます。

答えて

2

見WMIから開始時間として、このようなのいくつかを得ることができます。たとえば、次のサンプルは、ユーザーの最後のログオン時間を示しています。

もちろん、これはドメインユーザーにのみ有効です。

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.DirectoryServices; 

namespace ADMadness 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      DirectorySearcher search = new DirectorySearcher("LDAP://DC=my,DC=domain,DC=com"); 
      search.Filter = "(SAMAccountName=MyAccount)"; 
      search.PropertiesToLoad.Add("lastLogonTimeStamp"); 


      SearchResult searchResult = search.FindOne(); 


      long lastLogonTimeStamp = long.Parse(searchResult.Properties["lastLogonTimeStamp"][0].ToString()); 
      DateTime lastLogon = DateTime.FromFileTime(lastLogonTimeStamp); 


      Console.WriteLine("The user last logged on at {0}.", lastLogon); 
      Console.ReadLine(); 
     } 
    } 
} 
関連する問題