Пример #1
0
        /// <summary>
        /// 获取当前用户ID,如果数据库中没有数据,根据活动目录写入数据库中
        /// </summary>
        /// <returns>mUser.UserID</returns>
        public static long GetUserId()
        {
            string account = GetAccount();
            var    db      = new LAActivityEntities();//定义数据库连接接口
            User   mUser   = db.User.FirstOrDefault(u => u.Account.Equals(account));

            if (mUser != null)
            {
                return(mUser.UserID);
            }
            else
            {
                mUser         = new User();
                mUser.Account = account;
                mUser.Created = DateTime.Now;
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    DirectoryEntry adUser = ADHelper.GetDirectoryEntryByAccount(account);
                    if (adUser != null)
                    {
                        mUser.Name = adUser.Properties["displayName"][0].ToString();
                        if (adUser.Properties.Contains("telephoneNumber"))
                        {
                            mUser.Telephone = adUser.Properties["telephoneNumber"][0].ToString();
                        }
                        if (adUser.Properties.Contains("mail"))
                        {
                            mUser.Email = adUser.Properties["mail"][0].ToString();
                        }
                    }
                });
                db.User.Add(mUser);
                db.SaveChanges();
                return(mUser.UserID);
            }
        }