S.DS.AM 名前空間は .NET 3.5 で導入されましたが、残念ながら 2.0 バージョンはありません。
WindowsIdentity.GetCurrent().Name を使用して、ASP.NET アプリで現在の Windows ユーザーを照会できます。これにより、DOMAIN\UserName が得られます。
次に、対応する DirectoryEntry を見つけるために、DirectorySearcher オブジェクトを使用して AD でそのユーザーのユーザー検索を行う必要があります。これにより、そのユーザーのすべての断片が得られます。
string currentUser = WindowsIdentity.GetCurrent().Name;
string[] domainUserName = currentUser.Split('\\');
string justUserName = domainUserName[1];
DirectoryEntry searchRoot = new DirectoryEntry("LDAP://dc=(yourcompany),dc=com");
DirectorySearcher ds = new DirectorySearcher(searchRoot);
ds.SearchScope = SearchScope.Subtree;
ds.PropertiesToLoad.Add("sn");
ds.PropertiesToLoad.Add("givenName");
ds.Filter = string.Format("(&(objectCategory=person)(samAccountName={0}))", justUserName);
SearchResult sr = ds.FindOne();
if (sr != null)
{
string firstName = sr.Properties["givenName"][0].ToString();
string lastName = sr.Properties["sn"][0].ToString();
}
これは少し複雑で、.NET 2.0 に関係しています - それを変更することはできません :-(
マルク