Beispiel #1
0
        /// <summary>
        /// 主登录的方法,根据UserType的配置来选择是MF用户登录,还是域账户登录,注:MF登录选择数据库中的服务器进行登录,默认选择第一个
        /// </summary>
        public static UserLoginModel Login(string userName, string password, bool isDomainUser, UserManager <User, long> userManager
                                           , IVaultServerService serverServ, IMFUserService mfuserServ, IUserService userService)
        {
            var model    = new UserLoginModel();
            var userInfo = Login(userName, password, isDomainUser, serverServ, mfuserServ);

            if (userInfo == null)
            {
                model.Error = userName + ":" + "无效用户或密码!";
                return(model);
            }
            Log.Info("用户登录信息:" + userInfo.Fullname + "; " + userInfo.Email);
            var user = userManager.FindByName(userName);

            if (user == null)
            {
                var domain = String.Empty;
                if (isDomainUser)
                {
                    domain = ConfigurationManager.AppSettings["Domain"] ?? String.Empty;
                }
                var userModel = CreateUser(userManager, userService, userName, userInfo.Email, isDomainUser, domain, userInfo.Fullname);
                if (userModel.User == null)
                {
                    model.Error = userModel.Error + ":" + userModel.ErrorDescription;
                    return(model);
                }
                user = userModel.User;
            }
            if (user == null)
            {
                model.Error = userName + ": 未知错误!";
                return(model);
            }
            var needUpdate = false;

            if (userInfo.Fullname != user.FullName)
            {
                user.FullName = userInfo.Fullname;
                needUpdate    = true;
            }
            if (userInfo.Email != user.Email)
            {
                user.Email = userInfo.Email;
                needUpdate = true;
            }
            model.User = user;
            if (needUpdate)
            {
                Log.Info("更新用户信息:" + user.FullName + "; " + user.Email);
                userManager.Update(user);
            }
            return(model);
        }
Beispiel #2
0
 public AccountController(UserManager <User, long> userManager, SignInManager <User, long> signInManager, IAuthenticationManager authManager, IUserService userService
                          , IUserVaultService uservaultService, IRepository <MFilesVault> vaultRepository, IMFilesVaultService mfvaultService
                          , ICloudService cloudService, IVaultTemplateService vaultTemplateService, IProjectService projService, IProjectMemberService projectMemberService
                          , IVaultServerService vaultserverService, IMFUserService mfuserService, IMFVaultService vaultService) //IUserCloudService usercloudService,
     : base(authManager, signInManager, userManager)
 {
     _userService = userService;
     //_usercloudService = usercloudService;
     _uservaultService     = uservaultService;
     _cloudService         = cloudService;
     _vaultTemplateService = vaultTemplateService;
     _projService          = projService;
     _projectMemberService = projectMemberService;
     _mfvaultService       = mfvaultService;
     _vaultserverService   = vaultserverService;
     _mfuserService        = mfuserService;
     _vaultService         = vaultService;
     _vaultRepository      = vaultRepository;
 }
Beispiel #3
0
        private static UserInfo Login(string userName, string password, bool isDomainUser, IVaultServerService serverServ, IMFUserService mfuserServ)
        {
            if (isDomainUser)
            {
                return(Login2ActiveDirectory(userName, password));
            }
            var server = serverServ.GetServer();
            var ok     = mfuserServ.ConnectToServer(userName, password, server, false);

            if (!ok)
            {
                return(null);
            }
            return(mfuserServ.GetUserInfo(server, userName));
        }