/// <summary> /// 验证用户 /// </summary> /// <param name="systemID"></param> /// <param name="userName"></param> /// <param name="password"></param> /// <returns></returns> private bool ValidateUser(string userName, string password, out Auth_User loginUser) { try { var user = NH.Session.QueryOver <Auth_User>().Where(x => x.Name == userName && x.IsValid == true).List().FirstOrDefault(); if (user == null) { throw new Exception("用户名不存在!"); } if (user.Locked) { throw new Exception("用户名已被锁定!"); } var encrypt_password = MD5Helper.MD5Encrypt64(password); if (user.Password == encrypt_password) { loginUser = user; return(true); } throw new Exception("密码有误!"); } catch (Exception ex) { throw new Exception(ex.Message); } }
Auth_User CreateUserForLester(RegistrationLesterRequest lesterModel, string passwordHash) { var userNew = new Auth_User() { CreatedTime = DateTime.Now, PasswordHash = passwordHash, Email = lesterModel.Email, PhoneNumber = lesterModel.PhoneNumber, Status = (int)EnumStatusUser.Approved, }; if (!string.IsNullOrEmpty(lesterModel.Email)) { userNew.UserName = lesterModel.Email; } else if (!string.IsNullOrEmpty(lesterModel.PhoneNumber)) { userNew.UserName = lesterModel.PhoneNumber.Split('@').First();; } else { userNew.UserName = lesterModel.FacebookId; } return(_userService.InsertUserLester(userNew)); }
public virtual async void SignIn(Auth_User user, bool isPersistent) { if (user == null) { throw new ArgumentNullException(nameof(user)); } var claims = new List <Claim>(); if (!string.IsNullOrEmpty(user.UserName)) { claims.Add(new Claim(ClaimTypes.Name, user.UserName, ClaimValueTypes.String, MotelAuthenticationDefaults.ClaimsIssuer)); } if (!string.IsNullOrEmpty(user.Email)) { claims.Add(new Claim(ClaimTypes.Email, user.Email, ClaimValueTypes.Email, MotelAuthenticationDefaults.ClaimsIssuer)); } var userIdentity = new ClaimsIdentity(claims, MotelAuthenticationDefaults.AuthenticationScheme); var userPrincipal = new ClaimsPrincipal(userIdentity); var authenticationProperties = new AuthenticationProperties { IsPersistent = isPersistent, IssuedUtc = DateTime.UtcNow }; await _httpContextAccessor.HttpContext.SignInAsync(MotelAuthenticationDefaults.AuthenticationScheme, userPrincipal, authenticationProperties); //cache authenticated customer _cachedUser = user; }
public ActivityLog InsertActivity(Auth_User customer, string systemKeyword, string comment, BaseEntity entity = null) { if (customer == null) { return(null); } //try to get activity log type by passed system keyword var activityLogType = GetAllActivityTypes().FirstOrDefault(type => type.SystemKeyword.Equals(systemKeyword)); if (!activityLogType?.Enabled ?? true) { return(null); } //insert log item var logItem = new ActivityLog { ActivityLogTypeId = activityLogType.Id, EntityId = entity?.Id, EntityName = entity?.GetType().Name, CustomerId = customer.Id, Comment = CommonHelper.EnsureMaximumLength(comment ?? string.Empty, 4000), CreatedOnUtc = DateTime.UtcNow, IpAddress = _webHelper.GetCurrentIpAddress() }; _activityLogRepository.Insert(logItem); //event notification _eventPublisher.EntityInserted(logItem); return(logItem); }
public ActionResult Create(Auth_User item) { IDbConnection db = new OrmliteConnection().openConn(); try { if (!string.IsNullOrEmpty(item.UserID) && !string.IsNullOrEmpty(item.DisplayName) && !string.IsNullOrEmpty(item.FullName)) { var isExist = db.GetByIdOrDefault <Auth_User>(item.UserID); item.Phone = !string.IsNullOrEmpty(item.Phone) ? item.Phone : ""; item.Email = !string.IsNullOrEmpty(item.Email) ? item.Email : ""; item.Note = !string.IsNullOrEmpty(item.Note) ? item.Note : ""; if (userAsset.ContainsKey("Insert") && userAsset["Insert"] && item.RowCreatedAt == null && item.RowCreatedBy == null) { if (isExist != null) { return(Json(new { success = false, message = "Người dùng đã tồn tại." })); } item.Password = SqlHelper.GetMd5Hash("123456"); item.RowCreatedAt = DateTime.Now; item.RowCreatedBy = currentUser.UserID; db.Insert <Auth_User>(item); return(Json(new { success = true, UserID = item.UserID, RowCreatedAt = item.RowCreatedAt, RowCreatedBy = item.RowCreatedBy })); } else if (userAsset.ContainsKey("Update") && userAsset["Update"] && isExist != null) { item.Password = isExist.Password; item.RowUpdatedAt = DateTime.Now; item.RowUpdatedBy = currentUser.UserID; if (isExist.RowCreatedBy != "system") { db.Update <Auth_User>(item); } else { return(Json(new { success = false, message = "Dữ liệu này không cho chỉnh sửa liên hệ admin để biết thêm chi tiết" })); } return(Json(new { success = true })); } else { return(Json(new { success = false, message = "Bạn không có quyền" })); } } else { return(Json(new { success = false, message = "Chưa nhập giá trị" })); } } catch (Exception e) { log.Error("AD_User - Create - " + e.Message); return(Json(new { success = false, message = e.Message })); } finally { db.Close(); } }
/// <summary> /// Sign out /// </summary> public virtual async void SignOut() { //reset cached customer _cachedUser = null; //and sign out from the current authentication scheme await _httpContextAccessor.HttpContext.SignOutAsync(MotelAuthenticationDefaults.AuthenticationScheme); }
public JwtTokensData CreateJwtTokensAsync(Auth_User user) { var(accessToken, claims) = createAccessTokenAsync(user); var(refreshTokenValue, refreshTokenSerial) = createRefreshToken(); return(new JwtTokensData { AccessToken = accessToken, RefreshToken = refreshTokenValue, RefreshTokenSerial = refreshTokenSerial, Claims = claims }); }
public void UpdateUser(Auth_User customer) { if (customer == null) { throw new ArgumentNullException(nameof(customer)); } _userRepository.Update(customer); //event notification _eventPublisher.EntityUpdated(customer); }
public ActionResult Read([DataSourceRequest] DataSourceRequest request) { log4net.Config.XmlConfigurator.Configure(); string whereCondition = ""; if (request.Filters.Count > 0) { whereCondition = " AND " + new KendoApplyFilter().ApplyFilter(request.Filters[0]); } var data = new Auth_User().GetPage(request, whereCondition); return(Json(data)); }
public bool Authorize(Auth_Permission permission, Auth_User customer) { if (permission == null) { return(false); } if (customer == null) { return(false); } return(Authorize(permission.Permission, customer)); }
CustomPrincipal GetInforAuthorize(Auth_User user) { CustomPrincipal customPrincipal = new CustomPrincipal() { UserId = user.Id, Avatar = user.Avatar, FullName = user.UserName, Roles = _rolesUserServices.GetNameRoles(user.Id)?.ToArray(), Permissions = _userService.GetAllPermissonOfUser(user)?.Select(x => x.Permission)?.ToArray(), }; return(customPrincipal); }
private void 添加toolStripButton1_Click(object sender, EventArgs e) { if (!CheckControl()) { return; } //if (!m_personnerServer.AddPersonnelArchive(GetPersonnelArchiveData(), out error)) //{ // MessageDialog.ShowPromptMessage(error); // return; //} IQueryable <View_Auth_Role> authRole = m_roleManager.GetAllRoles(); string roleCode = ""; foreach (var item in authRole) { if (item.角色名称 == CE_RoleEnum.普通操作员.ToString()) { roleCode = item.角色编码; } } Auth_User userInfo = new Auth_User(); userInfo.LoginName = txtWorkID.Text.Trim(); userInfo.Password = "******"; userInfo.TrueName = txtName.Text.Trim(); userInfo.Dept = m_departmentServer.GetDeptCode(cmbDept.Text); userInfo.IsActived = false; userInfo.IsAdmin = false; userInfo.AuthenticationMode = "密码认证"; userInfo.IsLocked = false; userInfo.CreateDate = ServerTime.Time; userInfo.DestroyFlag = false; userInfo.Remarks = "通过人员档案自动添加"; if (m_userManager.AddUser(userInfo)) { if (!m_roleManager.AddUserInRole(roleCode, txtWorkID.Text)) { MessageDialog.ShowPromptMessage("员工信档案添加成功,角色分配失败!"); } } updateFlag = true; this.Close(); }
public Auth_User InsertUserAdmin(Auth_User user) { try { user.CreatedTime = DateTime.Now; user.Status = (int)EnumStatusUser.Approved; user.IsAdmin = true; _userRepository.Insert(user); _eventPublisher.EntityInserted(user); return(user); } catch (Exception ex) { _logger.Error("UpdateCustomerPassword error", ex); return(null); } }
public void AddUserToken(Auth_User user, string refreshTokenSerial, string accessToken, string refreshTokenSourceSerial) { var now = DateTime.UtcNow; var token = new Auth_UserToken { UserId = user.Id, // Refresh token handles should be treated as secrets and should be stored hashed RefreshTokenIdHash = _encryptionService.GetSha256Hash(refreshTokenSerial), RefreshTokenIdHashSource = string.IsNullOrWhiteSpace(refreshTokenSourceSerial) ? null : _encryptionService.GetSha256Hash(refreshTokenSourceSerial), AccessTokenHash = _encryptionService.GetSha256Hash(accessToken), RefreshTokenExpiresDateTime = now.AddMinutes(_configuration.Value.RefreshTokenExpirationMinutes), AccessTokenExpiresDateTime = now.AddMinutes(_configuration.Value.AccessTokenExpirationMinutes) }; AddUserToken(token); }
public Auth_User GetAuthenticatedCustomer() { if (_cachedUser != null) { return(_cachedUser); } var authenticateResult = _httpContextAccessor.HttpContext.AuthenticateAsync(MotelAuthenticationDefaults.AuthenticationScheme).Result; if (!authenticateResult.Succeeded) { return(null); } Auth_User user = null; if (_userSettings.UsernamesEnabled) { //try to get customer by username var usernameClaim = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Name && claim.Issuer.Equals(MotelAuthenticationDefaults.ClaimsIssuer, StringComparison.InvariantCultureIgnoreCase)); if (usernameClaim != null) { user = _userService.GetUserByUsername(usernameClaim.Value); } } else { //try to get customer by email var emailClaim = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Email && claim.Issuer.Equals(MotelAuthenticationDefaults.ClaimsIssuer, StringComparison.InvariantCultureIgnoreCase)); if (emailClaim != null) { user = _userService.GetUserByEmail(emailClaim.Value); } if (user == null || (user.Status != (int)EnumStatusUser.Approved) || user.Deleted != (int)EnumStatusUser.Delete) { return(null); } } _cachedUser = user; return(_cachedUser); }
public bool Authorize(string auth_PermissionSystemName, Auth_User customer) { if (string.IsNullOrEmpty(auth_PermissionSystemName)) { return(false); } if (Authorize(auth_PermissionSystemName, customer.Id, (int)ObjectTypeEnum.User)) { return(true); } var userRoles = _userService.GetUserRoles(customer); foreach (var role in userRoles) { if (Authorize(auth_PermissionSystemName, role.Id, (int)ObjectTypeEnum.Role)) { return(true); } } return(false); }
public FileResult Export([DataSourceRequest] DataSourceRequest request) { ExcelPackage pck = new ExcelPackage(new FileInfo(Server.MapPath("~/ExportTemplate/NguoiDung.xlsx"))); ExcelWorksheet ws = pck.Workbook.Worksheets["Data"]; if (userAsset["Export"]) { string whereCondition = ""; if (request.Filters.Count > 0) { whereCondition = " AND " + new KendoApplyFilter().ApplyFilter(request.Filters[0]); } IDbConnection db = new OrmliteConnection().openConn(); var lstResult = new Auth_User().GetExport(request, whereCondition); int rowNum = 2; foreach (var item in lstResult) { ws.Cells["A" + rowNum].Value = item.UserID; ws.Cells["B" + rowNum].Value = item.DisplayName; ws.Cells["C" + rowNum].Value = item.FullName; ws.Cells["D" + rowNum].Value = item.Email; ws.Cells["E" + rowNum].Value = item.Phone; ws.Cells["F" + rowNum].Value = item.Note; ws.Cells["G" + rowNum].Value = item.IsActive ? "Đang hoạt động" : "Ngưng hoạt động"; rowNum++; } db.Close(); } else { ws.Cells["A2:E2"].Merge = true; ws.Cells["A2"].Value = "You don't have permission to export data."; } MemoryStream output = new MemoryStream(); pck.SaveAs(output); return(File(output.ToArray(), //The binary data of the XLS file "application/vnd.ms-excel", //MIME type of Excel files "NguoiDung_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".xlsx")); //Suggested file name in the "Save as" dialog which will be displayed to the end user }
public ActionResult Registry(RegistryModel item) { IDbConnection db = new OrmliteConnection().openConn(); try { var isExist = db.FirstOrDefault <Auth_User>(p => p.UserID == item.UserName); item.Phone = !string.IsNullOrEmpty(item.Phone) ? item.Phone : ""; item.Email = !string.IsNullOrEmpty(item.Email) ? item.Email : ""; item.UserName = !string.IsNullOrEmpty(item.UserName) ? item.UserName : ""; if (isExist != null) { return(Json(new { success = false, message = "Người dùng đã tồn tại" })); } var user = new Auth_User(); user.UserID = item.UserName; user.DisplayName = item.UserName; user.Phone = item.Phone; user.Email = item.Email; user.IsActive = true; user.FullName = item.UserName; user.Password = SqlHelper.GetMd5Hash(item.Password); user.RowCreatedAt = DateTime.Now; user.RowCreatedBy = "CustomerRegistry"; user.Note = ""; db.Insert <Auth_User>(user); var detail = new Auth_UserInRole(); detail.UserID = item.UserName; detail.RoleID = 3; detail.RowCreatedAt = DateTime.Now; detail.RowCreatedBy = "CustomerRegistry"; db.Insert <Auth_UserInRole>(detail); return(Json(new { success = true, message = "Đăng ký thành công" })); } catch (Exception e) { return(Json(new { success = false, message = e.Message })); } finally { db.Close(); } }
public Auth_User InsertUserRetener(Auth_User user) { try { user.CreatedTime = DateTime.Now; user.Status = (int)EnumStatusUser.Approved; _userRepository.Insert(user); _eventPublisher.EntityInserted(user); var roles = _rolesServices.GetRoleByName(RoleDefault.RoleRetener); var usersRole = new Auth_UserRoles() { UserID = user.Id, RoleID = roles.Id }; AddUserRoleMapping(usersRole); return(user); } catch (Exception ex) { _logger.Error("UpdateCustomerPassword error", ex); return(null); } }
public int[] GetCustomerRoleIds(Auth_User user, bool showHidden = false) { if (user == null) { throw new ArgumentNullException(nameof(user)); } try { var key = _cacheKeyService.PrepareKeyForShortTermCache(MotelUserServicesDefaults.UserRoleIdsCacheKey, user); var query = from ur in _userRolesMappingRepository.Table join urm in _userRolesMappingRepository.Table on ur.Id equals urm.RoleID where urm.RoleID == user.Id orderby ur.Id select ur.RoleID; return(_staticCacheManager.Get(key, () => query.ToArray())); } catch (Exception ex) { _logger.Error("GetCustomerRoles error", ex); return(null); } }
public ActionResult Login(string userName, string password, bool isRememberMe) { if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password)) { throw new Exception("请输入用户名或密码"); } var user = new Auth_User(); try { if (ValidateUser(userName, password, out user)) { FormsAuthentication.SetAuthCookie(userName, true); ApplicationUser.InitLoginInfo(userName, user.RealName, user.Auth_Department.Name); FormsAuthentication.RedirectFromLoginPage(userName, true); return(null); } return(RedirectToAction("Login", "Account", new { msg = "登录失败" })); } catch (Exception ex) { return(RedirectToAction("Login", "Account", new { msg = ex.Message })); } }
private void 添加toolStripButton1_Click(object sender, EventArgs e) { if (!CheckControl()) { return; } if (!m_personnerServer.AddPersonnelArchive(GetPersonnelArchiveData(), GetPersonnelListData(), out m_error)) { MessageDialog.ShowPromptMessage(m_error); return; } IQueryable <View_Auth_Role> authRole = m_roleManager.GetAllRoles(); string roleCode = ""; foreach (var item in authRole) { if (item.角色名称 == CE_RoleEnum.普通操作员.ToString()) { roleCode = item.角色编码; } } Auth_User userInfo = new Auth_User(); userInfo.LoginName = txtWorkID.Text.Trim(); userInfo.Password = "******"; userInfo.TrueName = txtName.Text.Trim(); userInfo.Dept = m_departmentServer.GetDeptCode(cmbDept.Text); userInfo.IsActived = false; userInfo.IsAdmin = false; userInfo.AuthenticationMode = "密码认证"; userInfo.IsLocked = false; userInfo.CreateDate = ServerTime.Time; userInfo.DestroyFlag = false; userInfo.Remarks = "通过人员档案自动添加"; userInfo.Handset = txtMobilePhone.Text.Trim(); if (m_userManager.AddUser(userInfo)) { if (!m_roleManager.AddUserInRole(roleCode, txtWorkID.Text)) { MessageDialog.ShowPromptMessage("员工信档案添加成功,角色分配失败!"); } Flow_WarningNotice warning = new Flow_WarningNotice(); warning.标题 = "合同等待新签"; warning.发送方 = "系统"; warning.发送时间 = ServerTime.Time; warning.附加信息1 = "员工合同管理"; warning.附加信息2 = txtWorkID.Text; warning.附加信息3 = "0"; warning.附加信息4 = ""; warning.附加信息5 = ""; warning.附加信息6 = ""; warning.附加信息7 = ""; warning.附加信息8 = ""; warning.接收方 = "人力资源部办公室文员"; warning.接收方类型 = "角色"; warning.来源 = "人力资源管理系统"; warning.内容 = "【" + txtName.Text + "】员工【合同类】等待新签!"; warning.优先级 = "高"; warning.状态 = "未读"; m_warningNotice.SendWarningNotice(warning); } m_updateFlag = true; this.Close(); }
private (string AccessToken, IEnumerable <Claim> Claims) createAccessTokenAsync(Auth_User user) { var claims = new List <Claim> { // Unique Id for all Jwt tokes new Claim(JwtRegisteredClaimNames.Jti, _encryptionService.CreateCryptographicallySecureGuid().ToString(), ClaimValueTypes.String, _configuration.Value.Issuer), // Issuer new Claim(JwtRegisteredClaimNames.Iss, _configuration.Value.Issuer, ClaimValueTypes.String, _configuration.Value.Issuer), // Issued at new Claim(JwtRegisteredClaimNames.Iat, DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString(), ClaimValueTypes.Integer64, _configuration.Value.Issuer), new Claim(ClaimTypes.NameIdentifier, user.Id.ToString(), ClaimValueTypes.String, _configuration.Value.Issuer), new Claim(ClaimTypes.Name, user.UserName, ClaimValueTypes.String, _configuration.Value.Issuer), new Claim(ClaimTypes.Email, user.Email?.ToString(), ClaimValueTypes.String, _configuration.Value.Issuer), // to invalidate the cookie new Claim(ClaimTypes.SerialNumber, user.Id.ToString(), ClaimValueTypes.String, _configuration.Value.Issuer), // custom data new Claim(ClaimTypes.UserData, user.Id.ToString(), ClaimValueTypes.String, _configuration.Value.Issuer) }; // add roles var roleNames = _rolesUserServices.GetNameRoles(user.Id); foreach (var name in roleNames) { claims.Add(new Claim(ClaimTypes.Role, name, ClaimValueTypes.String, _configuration.Value.Issuer)); } var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration.Value.Key)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var now = DateTime.UtcNow; var token = new JwtSecurityToken( issuer: _configuration.Value.Issuer, audience: _configuration.Value.Audience, claims: claims, notBefore: now, expires: now.AddMinutes(_configuration.Value.AccessTokenExpirationMinutes), signingCredentials: creds); return(new JwtSecurityTokenHandler().WriteToken(token), claims); }
protected override void Initialize(System.Web.Routing.RequestContext requestContext) { base.Initialize(requestContext); if (this.User.Identity.IsAuthenticated) { IDbConnection dbConn = new OrmliteConnection().openConn(); lstAssetDefault = InitAssetDefault(); currentUser = dbConn.GetByIdOrDefault <Auth_User>(User.Identity.Name); currentUserRole = dbConn.SqlList <Auth_Role>("EXEC p_Auth_UserInRole_Select_By_UserID @UserID", new { UserID = User.Identity.Name }); string controllerName = this.GetType().Name; controllerName = controllerName.Substring(0, controllerName.IndexOf("Controller")); var lstAsset = new List <Auth_Action>(); // Get MenuID from controller name string menuID = dbConn.SingleOrDefault <Auth_Menu>("ControllerName = {0}", controllerName).MenuID; foreach (var g in currentUserRole) { // Get List Asset var temp = dbConn.Select <Auth_Action>(p => p.RoleID == g.RoleID && p.MenuID == menuID); if (temp.Count > 0) { lstAsset.AddRange(temp); } } if (lstAsset.Count == 0) { var item = new Auth_Action(); item.MenuID = menuID; item.Note = ""; item.RowCreatedAt = DateTime.Now; item.RowCreatedBy = "System"; if (currentUser.UserID == ConfigurationManager.AppSettings["superadmin"]) { item.RoleID = 1; item.IsAllowed = true; foreach (var asset in lstAssetDefault) { item.Action = asset; dbConn.Insert <Auth_Action>(item); } } else { item.RoleID = currentUserRole.FirstOrDefault().RoleID; item.IsAllowed = false; foreach (var asset in lstAssetDefault) { item.Action = asset; dbConn.Insert <Auth_Action>(item); } } } else { foreach (var g in currentUserRole) { // Asset var lst = lstAsset.Where(p => p.RoleID == g.RoleID).ToList(); foreach (var item in lst) { if (!userAsset.ContainsKey(item.Action)) { userAsset.Add(item.Action, item.IsAllowed); } else if (item.IsAllowed) { userAsset.Remove(item.Action); userAsset.Add(item.Action, item.IsAllowed); } } } } // Get Asset View Menu foreach (var g in currentUserRole) { var lstView = dbConn.Select <Auth_Action>(p => p.RoleID == g.RoleID && p.Action == "View"); //var lstView = new Auth_Menu().GetMenuByRoleID(g.RoleID); foreach (var i in lstView) { if (!dictView.ContainsKey("menu_" + i.MenuID)) { if (i.IsAllowed) { dictView.Add("menu_" + i.MenuID, true); } } } } ViewData["menuView"] = dictView; dbConn.Close(); } }
public IList <Auth_Assign> GetAllPermissonOfUser(Auth_User user) { return(GetAllPermissonOfUser(user.Id)); }