3

一旦用户登录到 Windows 身份验证站点,我如何从用户那里获取他们的 Active Directory 用户 guid。

例如在一个动作中:

ViewBag.Message = User.Identity.GUID????
4

2 回答 2

7

You should check out the System.DirectoryServices.AccountManagement (S.DS.AM) namespace. Read all about it here:

Basically, you can define a domain context and easily find users and/or groups in AD:

// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// find the current user
UserPrincipal user = UserPrincipal.Current;

if(user != null)
{
   // get guid
   var userGuid = user.Guid;
}

The new S.DS.AM makes it really easy to play around with users and groups in AD!

于 2012-11-27T05:50:43.697 回答
-2
 string userName = user.Identity.Name.Split('\\')[1];

            using (var oRoot = new DirectoryEntry(ConfigurationManager.AppSettings["LDAPDomain"], null, null, AuthenticationTypes.Secure))
            {
                using (var deSearch = new DirectorySearcher(oRoot))
                {
                    deSearch.Filter = string.Format("(&(sAMAccountName={0}))", userName);
                    SearchResult searchResult = deSearch.FindOne();
                    if (searchResult != null)
                    {
                        DirectoryEntry de = searchResult.GetDirectoryEntry();

                    }
                }
            }
于 2012-11-27T23:11:55.283 回答