public AuthenticatedEventArgs(string identity, string @namespace, bool isAuthenticated, User user = null) { _identity = identity; _namespace = @namespace; _isAuthenticated = isAuthenticated; _user = user; }
public void CreateUserTest() { var provider = this.GetUserProvider(); #region 单一插入 var user = new User { Namespace = "Flagwind.CRM", Name = "Jason", Email = "*****@*****.**", Approved = true, ApprovedTime = DateTime.Now, Suspended = false, ChangePasswordOnFirstTime = false, CreatedTime = DateTime.Now, }; var result = provider.CreateUser(user, "shenzhen"); Assert.AreEqual(result, true); #endregion #region 批量插入 // IList<User> users = new List<User>(); // // users.Add(new User // { // Namespace = "Flagwind.CRM", // Name = "Agnes", // Approved = true, // ApprovedTime = DateTime.Now, // Suspended = false, // ChangePasswordOnFirstTime = false, // CreatedTime = DateTime.Now, // }); // // users.Add(new User // { // Namespace = "Flagwind.CRM", // Name = "Lucky", // Approved = true, // ApprovedTime = DateTime.Now, // Suspended = false, // ChangePasswordOnFirstTime = false, // CreatedTime = DateTime.Now, // }); // // var result = provider.CreateUsers(users); // // Assert.AreEqual(result, 2); #endregion }
public AuthenticationResult(User user, IDictionary<string, object> extendedProperties) { if(user == null) throw new ArgumentNullException("user"); _user = user; if(extendedProperties != null && extendedProperties.Count > 0) _extendedProperties = new Dictionary<string, object>(extendedProperties, StringComparer.OrdinalIgnoreCase); }
public Credential Register(User user, string scene, IDictionary<string, object> extendedProperties = null) { //创建一个新的凭证对象 var credential = this.CreateCredential(user, scene, extendedProperties); if(credential == null) throw new InvalidOperationException(); //注册新建的凭证 this.Register(credential); //返回注册成功的凭证 return credential; }
public Certification(string certificationId, Membership.User user, string scene, TimeSpan duration, DateTime issuedTime, IDictionary<string, object> extendedProperties = null) { if(string.IsNullOrWhiteSpace(certificationId)) throw new ArgumentNullException("certificationId"); if(user == null) throw new ArgumentNullException("user"); _user = user; _certificationId = certificationId.Trim(); _scene = scene == null ? null : scene.Trim(); _duration = duration; _issuedTime = issuedTime; _timestamp = issuedTime; if(extendedProperties != null && extendedProperties.Count > 0) _extendedProperties = new Dictionary<string, object>(extendedProperties, StringComparer.OrdinalIgnoreCase); }
public Credential(string credentialId, Membership.User user, string scene, TimeSpan duration, DateTime issuedTime, IDictionary <string, object> extendedProperties = null) { if (string.IsNullOrWhiteSpace(credentialId)) { throw new ArgumentNullException("credentialId"); } if (user == null) { throw new ArgumentNullException("user"); } _user = user; _credentialId = credentialId.Trim(); _scene = scene == null ? null : scene.Trim(); _duration = duration; _issuedTime = issuedTime; _timestamp = issuedTime; if (extendedProperties != null && extendedProperties.Count > 0) { _extendedProperties = new Dictionary <string, object>(extendedProperties, StringComparer.OrdinalIgnoreCase); } }
public static bool IsBuiltin(User user) { if(user == null) return false; return IsBuiltin(user.Name); }
public Credential(string credentialId, Membership.User user, string scene, TimeSpan duration) : this(credentialId, user, scene, duration, DateTime.Now, null) { }
public CredentialRegisterEventArgs(Membership.User user, string scene, IDictionary <string, object> extendedProperties = null) { _user = user ?? throw new ArgumentNullException(nameof(user)); _scene = scene; _extendedProperties = extendedProperties; }
public AuthenticationResult(User user) : this(user, null) { }
public bool CreateUser(User user, string password) { if(user == null) throw new ArgumentNullException("user"); if(string.IsNullOrWhiteSpace(user.Name)) throw new ArgumentException("The user name is empty."); if(user.UserId < 1) user.UserId = (int)this.EnsureService<Zongsoft.Common.ISequence>().GetSequenceNumber(MembershipHelper.SEQUENCE_USERID, 1, MembershipHelper.MINIMUM_ID); //确保用户名是审核通过的 this.Censor(user.Name); var dataAccess = this.EnsureService<IDataAccess>(); using(var transaction = new Zongsoft.Transactions.Transaction()) { if(dataAccess.Insert(MembershipHelper.DATA_ENTITY_USER, user) < 1) return false; if(password != null && password.Length > 0) { //生成密码随机数 var passwordSalt = Zongsoft.Common.RandomGenerator.Generate(8); dataAccess.Update(MembershipHelper.DATA_ENTITY_USER, new { Password = PasswordUtility.HashPassword(password, passwordSalt), PasswordSalt = passwordSalt, }, new Condition("UserId", user.UserId)); } //提交事务 transaction.Commit(); } return true; }
protected virtual Credential CreateCredential(User user, string scene, IDictionary<string, object> extendedProperties) { return new Credential(this.GenerateCredentialId(), user, scene, _renewalPeriod, DateTime.Now, extendedProperties); }
public bool CreateUser(User user, string password) { if(user == null) throw new ArgumentNullException("user"); if(string.IsNullOrWhiteSpace(user.Name)) throw new ArgumentException("The user name is empty."); // 确保用户名是审核通过的 this.Censor(user.Name); var dataAccess = this.EnsureService<IDataAccess>(); dataAccess.BeginTransaction(); try { var entity = Mapper.Map<User, UserEntity>(user); if(dataAccess.Insert(entity) < 1) return false; if(password != null && password.Length > 0) { //生成密码随机数 var passwordSalt = Zongsoft.Common.RandomGenerator.Generate(8); entity.Password = PasswordUtility.HashPassword(password, passwordSalt); entity.PasswordSalt = passwordSalt; // 更新密码 var oql = OQL.From(entity).Update(entity.Password, entity.PasswordSalt).End(); dataAccess.Execute(oql); } dataAccess.Commit(); } catch(Exception ex) { dataAccess.Rollback(); throw ex; } return true; }
private void EnsureConflict(User user, string scope, bool isUpdate) { var ns = MembershipHelper.GetNamespaceCondition(user.Namespace); var conditions = new ConditionCollection(ConditionCombination.Or); if(!string.IsNullOrWhiteSpace(user.Name) && MembershipHelper.InScope<User>(scope, "Name")) conditions.Add(ns & Condition.Equal("Name", user.Name)); if(!string.IsNullOrWhiteSpace(user.Email) && MembershipHelper.InScope<User>(scope, "Email")) conditions.Add(ns & Condition.Equal("Email", user.Email)); if(!string.IsNullOrWhiteSpace(user.PhoneNumber) && MembershipHelper.InScope<User>(scope, "PhoneNumber")) conditions.Add(ns & Condition.Equal("PhoneNumber", user.PhoneNumber)); if(isUpdate && conditions.Count > 0) conditions = Condition.NotEqual("UserId", user.UserId) & conditions; if(conditions.Count > 0 && this.DataAccess.Exists(MembershipHelper.DATA_ENTITY_USER, conditions)) throw new DataConflictException(Zongsoft.Resources.ResourceUtility.GetString("Text.UserConflict")); }
public bool CreateUser(User user, string password) { if(user == null) throw new ArgumentNullException("user"); if(string.IsNullOrWhiteSpace(user.Name)) throw new ArgumentException("The user name is empty."); //确保用户名是审核通过的 this.Censor(user.Name); //确认指定用户的用户名、手机号、邮箱地址是否已经存在 this.EnsureConflict(user, null, false); if(user.UserId < 1) user.UserId = (int)this.Sequence.GetSequenceNumber(MembershipHelper.SEQUENCE_USERID, 1, MembershipHelper.MINIMUM_ID); using(var transaction = new Zongsoft.Transactions.Transaction()) { if(this.DataAccess.Insert(MembershipHelper.DATA_ENTITY_USER, user) < 1) return false; //有效的密码不能为空或全空格字符串 if(!string.IsNullOrWhiteSpace(password)) { //生成密码随机数 var passwordSalt = Zongsoft.Common.RandomGenerator.Generate(8); this.DataAccess.Update(MembershipHelper.DATA_ENTITY_USER, new { Password = PasswordUtility.HashPassword(password, passwordSalt), PasswordSalt = passwordSalt, }, new Condition("UserId", user.UserId)); } //提交事务 transaction.Commit(); } return true; }