Пример #1
0
 public OperationResult UpdatedUser(UserInputDto inputDto)
 {
     if (!UserLoginRepository.CheckExists(m => m.Id == inputDto.Id))
     {
         throw new Exception("id:用户信息不存在");
     }
     else
     {
         var result      = UserLoginRepository.TrackEntities.First(m => m.Id == inputDto.Id);
         var result_user = result.UserMany.First();
         result_user.Email             = inputDto.Email;
         result_user.PhoneNumber       = inputDto.PhoneNumber;
         result_user.WeChat            = inputDto.WeChat;
         result_user.Remark            = inputDto.Remark;
         result_user.Theme             = inputDto.Theme;
         result_user.RealName          = inputDto.RealName;
         result_user.NickName          = inputDto.NickName;
         result_user.Sex               = inputDto.Sex;
         result_user.IsAlarm           = inputDto.IsAlarm;
         result_user.IsSysReceive      = inputDto.IsSysReceive;
         result_user.Language          = inputDto.Language;
         result_user.LastUpdatedTime   = DateTime.Now;
         result_user.LastUpdatorUserId = result.UserName;
         int n = UserLoginRepository.Update(result);
         if (n > 0)
         {
             return(new OperationResult(OperationResultType.Success, "更新用户基本信成功!"));
         }
         else
         {
             throw new Exception("id:更新用户数据失败");
         }
     }
 }
Пример #2
0
 /// <summary>
 /// 获取用户头像byte[]
 /// </summary>
 /// <param name="id">用户主键</param>
 /// <returns></returns>
 public byte[] GetHeadIconBits(Guid id)
 {
     if (!UserLoginRepository.CheckExists(m => m.Id == id))
     {
         throw new Exception($"id:查询信息不能存在");
     }
     else
     {
         var result = UserLoginRepository.TrackEntities.First(m => m.Id == id);
         var user   = result.UserMany.First();
         if (string.IsNullOrEmpty(user.HeadIconPath) && (user.HeadIcon?.Length <= 0 || user.HeadIcon == null))
         {
             return(Properties.Resources._default.ToBytes());
         }
         else
         {
             var imgPath = HttpContext.Current.Server.MapPath($"{user.HeadIconPath}");
             if (File.Exists(imgPath))
             {
                 return(File.ReadAllBytes(imgPath));
             }
             else
             {
                 imgPath = HttpContext.Current.Server.MapPath($"~/HeadIconFiles\\{result.Id.ToString()}");
                 string str = user.HeadIcon.CreateImageFromBytes(imgPath);
                 user.HeadIconPath = $"~/HeadIconFiles\\{str.Substring(str.LastIndexOf('\\') + 1)}";
                 UserLoginRepository.Update(result);
                 return(user.HeadIcon);
             }
         }
     }
 }
Пример #3
0
 public WebsiteUserStore()
 {
     _userRepository      = new UserRepository <TUser>();
     _userLoginRepository = new UserLoginRepository();
     _userClaimRepository = new UserClaimRepository <TUser>();
     _userRoleRepository  = new UserRoleRepository <TUser>();
 }
        public UnitOfWork(ApplicationDbContext context)
        {
            _context = context;

            Attempts       = new AttemptRepository(_context);
            Exams          = new ExamRepository(_context);
            Images         = new ImageRepository(_context);
            NoteParameters = new NoteParameterRepository(_context);
            Notifications  = new NotificationRepository(_context);
            Notes          = new NoteRepository(_context);
            Opinions       = new OpinionRepository(_context);
            Options        = new OptionRepository(_context);
            Passages       = new PassageRepository(_context);
            Questions      = new QuestionRepository(_context);
            Requirements   = new RequirementRepository(_context);
            Roles          = new RoleRepository(_context);
            RoleClaims     = new RoleClaimRepository(_context);
            Standards      = new StandardRepository(_context);
            Sittings       = new SittingRepository(_context);
            Topics         = new TopicRepository(_context);
            Users          = new UserRepository(_context);
            UserClaims     = new UserClaimRepository(_context);
            UserLogins     = new UserLoginRepository(_context);
            UserRoles      = new UserRoleRepository(_context);
            UserTokens     = new UserTokenRepository(_context);
        }
Пример #5
0
 /// <summary>
 /// 更新用户头像
 /// </summary>
 /// <param name="id">用户主键ID</param>
 /// <param name="imageFile">图片文件</param>
 /// <returns>是否修改成功</returns>
 public async Task <OperationResult> SetUserHeadIcon(Guid id, Task <FileInfo> imageFile)
 {
     if (!UserLoginRepository.CheckExists(m => m.Id == id))
     {
         throw new Exception($"id:用户主键{id}的账号不存在");
     }
     else
     {
         var file = await imageFile;
         using (Bitmap bitmap = new Bitmap(file.FullName))
         {
             byte[] HeadIcomBits                = bitmap.ToBytes();
             var    user                        = UserLoginRepository.TrackEntities.FirstOrDefault(m => m.Id == id);
             user.UserMany.First().HeadIcon     = HeadIcomBits;
             user.UserMany.First().HeadIconPath = Path.Combine("~/HeadIconFiles", file.Name);
             if (UserLoginRepository.Update(user) > 0)
             {
                 return(new OperationResult(OperationResultType.Success, "操作成功!"));
             }
             else
             {
                 return(new OperationResult(OperationResultType.Error, "操作失败!"));
             }
         }
     }
 }
Пример #6
0
        public UserLoginTests()
        {
            // Arrange
            var options = new DbContextOptionsBuilder <TimeSheetDbContext>()
                          .UseInMemoryDatabase(databaseName: "EmployeeDataBase")
                          .Options;

            _ctx = new TimeSheetDbContext(options);
            _ctx.UserLogins.Add(new UserLogin {
                LoginTime = login1, UUId = "1"
            });
            _ctx.UserLogouts.Add(new UserLogout {
                LogoutTime = logout1, UUId = "1"
            });

            _ctx.UserLogins.Add(new UserLogin {
                LoginTime = login2, UUId = "1"
            });
            _ctx.UserLogouts.Add(new UserLogout {
                LogoutTime = logout2, UUId = "1"
            });

            _ctx.UserLogins.Add(new UserLogin {
                LoginTime = login3, UUId = "1"
            });
            _ctx.UserLogouts.Add(new UserLogout {
                LogoutTime = logout3, UUId = "1"
            });

            _ctx.SaveChanges();

            _repo = new UserLoginRepository(_ctx);
        }
Пример #7
0
 public virtual async Task RemoveLoginAsync(TUser user, UserLoginInfo login)
 {
     user.CheckNotNull("user");
     login.CheckNotNull("login");
     await UserLoginRepository.DeleteAsync(
         m => m.User.Id.Equals(user.Id) && m.LoginProvider == login.LoginProvider && m.ProviderKey == login.ProviderKey);
 }
Пример #8
0
 /// <summary>
 /// 修改月用户密码
 /// </summary>
 /// <param name="id">用户登录ID</param>
 /// <param name="od">旧密码</param>
 /// <param name="nd">新密码</param>
 /// <returns></returns>
 public OperationResult ChangePasswrod(Guid id, string od, string nd)
 {
     if (!UserLoginRepository.CheckExists(m => m.Id == id))
     {
         throw new Exception("id:未查询到用户信息");
     }
     else
     {
         var result = UserLoginRepository.TrackEntities.First(m => m.Id == id);
         if (result.Password != od.AESEncrypt128(result.SecretKey))
         {
             throw new Exception("id:验证旧密码出错");
         }
         else
         {
             result.SecretKey = new Random().NextLetterString(16).ToUpper();
             result.Password  = nd.AESEncrypt128(result.SecretKey);
             if (UserLoginRepository.Update(result) > 0)
             {
                 //修改密码后移除登录缓存
                 ICache iCache = CacheManager.GetCacher <CacheUser>();
                 iCache.Remove(result.UserName.AESEncrypt128());
                 return(new OperationResult(OperationResultType.Success, $"修改用户{result.UserName}密码成功"));
             }
             else
             {
                 throw new Exception($"id:修改用户{result.UserName}密码失败");
             }
         }
     }
 }
 public UserUnitOfWork(AyudaContext context)
 {
     Context      = context;
     Users        = new UserRepository(Context);
     UserTokens   = new UserTokenRepository(context);
     UserLogins   = new UserLoginRepository(context);
     UserProfiles = new UserProfileRepository(context);
 }
Пример #10
0
 public FluentNHibernateUserStore(ProviderTypeEnum providerType, string nameOrConnectionString,
                                  FluentNHibernatePersistenceBuilderOptions options = null)
 {
     _userRepository      = new UserRepository <TUser>(providerType, nameOrConnectionString, options);
     _userLoginRepository = new UserLoginRepository(_userRepository.SessionFactoryKey);
     _userClaimRepository = new UserClaimRepository <TUser>(_userRepository.SessionFactoryKey);
     _userRoleRepository  = new UserRoleRepository <TUser>(_userRepository.SessionFactoryKey);
 }
Пример #11
0
 public MySqlUserStore(string connectionStringName)
 {
     _connectionString    = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;
     _userRepository      = new UserRepository <TUser>(_connectionString);
     _userLoginRepository = new UserLoginRepository(_connectionString);
     _userClaimRepository = new UserClaimRepository <TUser>(_connectionString);
     _userRoleRepository  = new UserRoleRepository <TUser>(_connectionString);
 }
Пример #12
0
 public MySqlUserStore()
 {
     _connectionString    = MySqlConnectionWrapper.ConnectionString;
     _userRepository      = new UserRepository <TUser>(_connectionString);
     _userLoginRepository = new UserLoginRepository(_connectionString);
     _userClaimRepository = new UserClaimRepository <TUser>(_connectionString);
     _userRoleRepository  = new UserRoleRepository <TUser>(_connectionString);
 }
Пример #13
0
 public UsersController(
     UserLoginRepository userLoginRepository,
     GuestLoginRepository guestLoginRepository,
     UserConnectionsService userConnectionsService)
 {
     this.userLoginRepository    = userLoginRepository;
     this.guestLoginRepository   = guestLoginRepository;
     this.userConnectionsService = userConnectionsService;
 }
Пример #14
0
        public UserSessionDto Login(string userId, string password)
        {
            if (string.IsNullOrEmpty(userId))
            {
                throw new ArgumentException("User Id cannot be null", nameof(userId));
            }

            if (string.IsNullOrEmpty(password))
            {
                throw new ArgumentException("Password cannot be null", nameof(password));
            }

            UserLogin userLoginEntity = null;

            using (UserLoginRepository userLoginRepository = new UserLoginRepository())
            {
                string securePassword = password.Encrypt();
                userLoginEntity = userLoginRepository.Find(x => x.UserId == userId && x.Password == securePassword);
                if (userLoginEntity == null)
                {
                    throw new ApplicationException("Invalid UserId/Password");
                }
            }
            using (UserInfoRepository repository = new UserInfoRepository())
            {
                UserInfo userInfo = repository.Find(x => x.UserId == userId);
                if (userInfo == null)
                {
                    throw new ApplicationException("User Info not found.");
                }
                string sessionId = Guid.NewGuid().ToString();
                using (UserSessionRepository userSessionRepository = new UserSessionRepository())
                {
                    UserSession userSession = new UserSession
                    {
                        UserId    = userId,
                        SessionId = sessionId,
                        ValidFrom = DateTime.Now,
                        ExpiresOn = DateTime.Now.AddDays(1)
                    };
                    userSessionRepository.Insert(userSession);
                }

                return(new UserSessionDto()
                {
                    SessionId = sessionId,
                    User = new UserInfoDto()
                    {
                        FirstName = userInfo.FirstName,
                        LastName = userInfo.LastName,
                        Email = userInfo.EMail,
                        UserId = userInfo.UserId,
                        Gender = userInfo.Gender
                    }
                });
            }
        }
Пример #15
0
        private void MbtnLogin_Click(object sender, EventArgs e)
        {
            if (this.txtLoginPassword.Text != "" && this.txtLoginId.Text != "")
            {
                UserLoginEntity user = new UserLoginEntity();
                user.UserId       = txtLoginId.Text.Trim();
                user.UserPassword = txtLoginPassword.Text;


                UserLoginRepository emp = new UserLoginRepository();

                if (emp.UserLoginValidation(user))
                {
                    if (user.UserId.Substring(0, 1) == "A")
                    {
                        MessageBox.Show("Admin");
                        AdminDashboard admin = new AdminDashboard(this, user.UserId);
                        this.Hide();
                        admin.Show();
                        Clear();
                    }
                    else if (user.UserId.Substring(0, 1) == "W")
                    {
                        MessageBox.Show("Waiter");
                        Waiter_Dashboard wd = new Waiter_Dashboard(this, user.UserId);
                        this.Hide();
                        wd.Show();
                        Clear();
                    }

                    else if (user.UserId.Substring(0, 1) == "M")
                    {
                        MessageBox.Show("Manager");
                        Manager_Dashboard md = new Manager_Dashboard(this, user.UserId);
                        this.Hide();
                        md.Show();
                        Clear();
                    }

                    else
                    {
                        MessageBox.Show("Invalid Form Of Id!");
                        Clear();
                    }
                }
                else
                {
                    MessageBox.Show("Invalid Id or Password", "Login Failed");
                    Clear();
                }
            }
            else
            {
                MessageBox.Show("Insert ID or Password", "Login Failed");
                Clear();
            }
        }
Пример #16
0
 public virtual async Task AddLoginAsync(TUser user, UserLoginInfo login)
 {
     user.CheckNotNull("user");
     login.CheckNotNull("login");
     TUserLogin userLogin = new TUserLogin()
     {
         LoginProvider = login.LoginProvider, ProviderKey = login.ProviderKey, User = user
     };
     await UserLoginRepository.InsertAsync(userLogin);
 }
Пример #17
0
        public long AddLoginAccount(string username, string password)
        {
            UserLoginTable user = new UserLoginTable
            {
                email    = username,
                password = password
            };

            return(UserLoginRepository.AddLoginAccount(user));
        }
Пример #18
0
 public UnitofWork(HousingVigilanceContext context)
 {
     Context     = context;
     Vehicles    = new VehicleRepository(context);
     Users       = new UserRepository(context);
     Roles       = new RoleRepository(context);
     Permissions = new PermissionRepository(context);
     GateEntries = new GateEntryRepository(context);
     QRcodes     = new QRRepository(context);
     UserLogins  = new UserLoginRepository(context);
 }
Пример #19
0
        public long RegisterUser(UserTable user, UserLoginTable userLogin)
        {
            if (!UserLoginRepository.CheckEmail(userLogin.email))
            {
                return(-1);
            }
            long ID = UR.Createuser(user);

            userLogin.userID = ID;
            return(UserLoginRepository.AddLoginAccount(userLogin));
        }
Пример #20
0
        /// <summary>
        /// 添加用户登录信息
        /// </summary>
        /// <param name="inputDtos">要添加的用户登录信息Dtos集合</param>
        /// <param name="cacheUser">当前操作用户的缓存</param>
        /// <returns>业务操作结果</returns>
        public async Task <OperationResult> AddUserLogin(CacheUser cacheUser, params UserLoginInputDto[] inputDtos)
        {
            try
            {
                if (inputDtos.Length <= 0)
                {
                    return(new OperationResult(OperationResultType.Error, "添加用户的数组不存在存数!"));
                }
                else
                {
                    List <string> names = new List <string>();
                    UserLoginRepository.UnitOfWork.BeginTransaction();
                    foreach (UserLoginInputDto dto in inputDtos)
                    {
                        if (cacheUser.Level >= dto.Level)
                        {
                            return(new OperationResult(OperationResultType.ValidError, $"用户:{dto.UserName}权限等级参数设置错误"));
                        }
                        UserLogin value = dto.MapTo <UserLogin>();
                        value.SecretKey = new Random().NextLetterString(16);
                        value.Password  = value.Password.AESEncrypt128(key: value.SecretKey);
                        value.UserMany.Add(new User
                        {
                            CreatedTime     = DateTime.Now,
                            CreatorUserId   = cacheUser.UserName,
                            LastUpdatedTime = DateTime.Now,
                            UserLoginOne    = value,
                        });
                        await UserLoginRepository.InsertAsync(value);

                        if (value.Level == 2)
                        {
                            int count = UserOrganizeMapRepository.CheckExists(m => m.Organize_Id == value.Organize_Id && m.UserLogin_Id == value.Id) ? 0 : UserOrganizeMapRepository.Insert(new UserOrganizeMap {
                                Organize_Id = value.Organize_Id, UserLogin_Id = value.Id
                            });
                        }
                        names.Add(value.UserName);
                    }
                    UserLoginRepository.UnitOfWork.Commit();
                    if (names.Count == 0)
                    {
                        return(new OperationResult(OperationResultType.NoChanged, "未能添加任何用户"));
                    }
                    else
                    {
                        return(new OperationResult(OperationResultType.Success, "用户:{0}创建成功".FormatWith(names.ExpandAndToString())));
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception($"id:{ex.InnerException.Message}");
            }
        }
Пример #21
0
 public UserAuthenticationService(
     UserLoginRepository userRepository,
     GuestLoginRepository guestLoginRepository,
     ForumUserRepository forumUserRepository,
     UserConnectionsService userConnectionsService)
 {
     authenticationServiceLock   = new object();
     this.userConnectionsService = userConnectionsService;
     this.userRepository         = userRepository;
     this.guestLoginRepository   = guestLoginRepository;
     this.forumUserRepository    = forumUserRepository;
 }
Пример #22
0
        public async Task <ActionResult> BindLoginCallback(string userid)
        {
            //判断当前微信账号是否已经绑定了用户
            var count = await UserLoginRepository.GetAll().IgnoreQueryFilters()
                        .CountAsync(o => o.LoginProvider == WeChatAuthProviderApi.Name && o.ProviderKey == WeUser.openid);

            if (count > 0)
            {
                return(Redirect("/WeiXin/Error?msg=" + "当前微信已经绑定了账号".UrlEncode()));
            }
            ViewBag.UserId = userid;
            return(View());
        }
Пример #23
0
        public User GetUserFromOpenId(int tenantId, string openId)
        {
            using (CurrentUnitOfWork.SetTenantId(tenantId))
            {
                UserLogin userLogin = UserLoginRepository.GetAll().Where(model => model.ProviderKey == openId).FirstOrDefault();

                if (userLogin == null)
                {
                    return(null);
                }
                User user = UserRepository.Get(userLogin.UserId);
                return(user);
            }
        }
Пример #24
0
        public long CheckCredentials(string username, string password)
        {
            if (!UserLoginRepository.CheckEmail(username))
            {
                UserLoginTable userLoginTable = new UserLoginTable
                {
                    email    = username,
                    password = password
                };

                return(UserLoginRepository.CheckPassword(userLoginTable));
            }
            return(-1);
        }
        public SignInServiceTest()
        {
            var context = new MaktoobDbContext(new DbContextOptionsBuilder <MaktoobDbContext>().UseInMemoryDatabase("MaktoobDb").Options);

            _errorDescriber = new GErrorDescriber();
            var keyNormalizer       = new NameNormalizer();
            var passwordHasher      = new PasswordHasher();
            var unitOfWork          = new UnitOfWork(context);
            var userRepository      = new UserRepository(context, unitOfWork);
            var userLoginRepository = new UserLoginRepository(context, unitOfWork);
            var userValidator       = new IValidator <User>[] { new UserValidator(userRepository, keyNormalizer, _errorDescriber) };

            _userService = new UserService(userRepository, _errorDescriber, keyNormalizer, passwordHasher, userValidator);
            var jsonWebTokenOptions = new JsonWebTokenOptions
            {
                Issuer       = "issuer",
                Audience     = "audience",
                Algorithm    = "HS256",
                Key          = "super secret key",
                Expires      = TimeSpan.Parse("00:00:01"), // 1 seconds
                RefreshToken = new RefreshTokenOptions
                {
                    Expires        = TimeSpan.Parse("00:00:10"), // 10 seconds
                    UpdateRequired = TimeSpan.Parse("00:00:05")  // 5 seconds
                }
            };
            var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jsonWebTokenOptions.Key));
            JwtBearerOptions jwtBearerOptions = new JwtBearerOptions
            {
                TokenValidationParameters = new TokenValidationParameters
                {
                    IssuerSigningKey         = securityKey,
                    ValidIssuer              = jsonWebTokenOptions.Issuer,
                    ValidAudience            = jsonWebTokenOptions.Audience,
                    ValidateAudience         = !string.IsNullOrWhiteSpace(jsonWebTokenOptions.Audience),
                    ValidateIssuer           = !string.IsNullOrWhiteSpace(jsonWebTokenOptions.Issuer),
                    ValidateIssuerSigningKey = true,
                    ClockSkew        = TimeSpan.Zero,
                    ValidateLifetime = true
                }
            };
            var jsonWebTokenCoder     = new JsonWebTokenCoder(Options.Create(jsonWebTokenOptions));
            var userClaimsFactory     = new UserClaimsFactory();
            var refreshTokenGenerator = new RefreshTokenGenerator();

            _signInService = new SignInService(_userService,
                                               jsonWebTokenCoder, userLoginRepository,
                                               _errorDescriber, userClaimsFactory, refreshTokenGenerator, null,
                                               Options.Create(jsonWebTokenOptions));
        }
Пример #26
0
        public Task <TUser> FindAsync(UserLoginInfo login)
        {
            if (login == null)
            {
                throw new ArgumentNullException("login");
            }

            var identityUserLogins = UserLoginRepository.GetByWhere(new Dictionary <string, object> {
                { "ProviderKey", login.ProviderKey },
                { "LoginProvider", login.LoginProvider }
            }).ToList();

            return(Task.FromResult(!identityUserLogins.Any() ? null : UserRepository.Get(identityUserLogins.First().UserId)));
        }
Пример #27
0
        public Task <IList <UserLoginInfo> > GetLoginsAsync(TUser user)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            var logins = UserLoginRepository.GetByWhere(new Dictionary <string, object> {
                { "UserId", user.Id }
            })
                         .Select(x => new UserLoginInfo(x.LoginProvider, x.ProviderKey)).ToList();

            return(Task.FromResult <IList <UserLoginInfo> >(logins));
        }
Пример #28
0
        public string GetOpenid(UserIdentifier userIdentifier)
        {
            using (CurrentUnitOfWork.SetTenantId(userIdentifier.TenantId))
            {
                UserLogin weixinUserLogin = UserLoginRepository.GetAll().Where(model => model.UserId == userIdentifier.UserId &&
                                                                               model.LoginProvider == "Weixin").FirstOrDefault();

                if (weixinUserLogin == null)
                {
                    return(null);
                }
                return(weixinUserLogin.ProviderKey);
            }
        }
Пример #29
0
        public async Task <ActionResult> LoginCallback(string guid)
        {
            //判断当前微信账号是否已经绑定用户
            var userLogin = await UserLoginRepository.GetAll().IgnoreQueryFilters()
                            .Where(o => o.LoginProvider == WeChatAuthProviderApi.Name && o.ProviderKey == WeUser.openid)
                            .FirstOrDefaultAsync();

            //if (userLogin == null)
            //{
            //    return Redirect("/MES/BindError");
            //    return Redirect("/WeiXin/Error?msg=" + "当前微信尚未绑定账号".UrlEncode());
            //}
            ViewBag.Guid = guid;
            return(View());
        }
        private void InitRepositories()
        {
            //  Ubication
            Countries = new CountryRepository(this);
            States    = new StateRepository(this);
            Cities    = new CityRepository(this);

            //  Authorization
            Users         = new UserRepository(this);
            UsersRoles    = new UserRoleRepository(this);
            UsersLogins   = new UserLoginRepository(this);
            Roles         = new RoleRepository(this);
            RoleControls  = new RoleControlRepository(this);
            UserClaims    = new UserClaimRepository(this);
            RefreshTokens = new RefreshTokenRepository(this);
        }