public ActionResult DeleteUser(string id, FormCollection Collection) { BzureUser user = Actor.Public.AsUserManager().GetUserByID(id); NotificationViewModel notification = new NotificationViewModel(); if (user.IsNotNull()) { if (Actor.Public.AsUserManager().DeleteUserByID(id)) { notification.Data = NotificationData.YES; notification.Content = string.Format("用户:{0}删除成功", user.UserName); notification.NotificationType = NotificationType.Success; } else { notification.Data = NotificationData.NO; notification.Content = string.Format("用户:{0}删除失败", user.UserName); notification.NotificationType = NotificationType.Error; } } else { notification.Data = NotificationData.NO; notification.Content = string.Format("用户ID:{0}不存在!", id); notification.NotificationType = NotificationType.Attention; } return(Result(notification)); }
public ActionResult LogOn(LogonModel model, string returnUrl) { IAccountContract AccountContract = Actor.Public.AsAccountManager(); if (AccountContract.ValidateUser(model.UserName, AccountContract.EncryptPassword(model.Password))) { BzureUser user = AccountContract.GetUserByName(model.UserName); user.SignIn(model.RememberMe); if (Url.IsLocalUrl(returnUrl)) { return(Redirect(returnUrl)); } else { return(Redirect("/")); } } else { LogonViewModel ViewModel = new LogonViewModel() { Title = "用户登录", Message = "用户名或密码不正确", MasterViewModel = this.MasterViewModel }; return(this.Result(ViewModel)); } }
public ActionResult Register(RegisterModel model) { IAccountContract ac = Actor.Public.AsAccountManager(); IUserContract uc = Actor.Public.AsUserManager(); BzureUser user = new BzureUser(uc.GenerateUserID(), model.UserName) { EMail = model.Email, Password = ac.EncryptPassword(model.Password), RoleValue = 0, OpenID = string.Empty, State = 0, NickName = model.UserName }; CreateUserResult result = ac.CreateUser(user); if (result == CreateUserResult.Success) { user.SignIn(false);//登录 return(Redirect("/")); } else { RegisterViewModel ViewModel = new RegisterViewModel() { Title = "注册", Message = result.StringValue(), MasterViewModel = this.MasterViewModel }; return(this.Result(ViewModel)); } }
/// <summary> /// 创建新用户 /// </summary> /// <param name="User"></param> /// <returns>是否成功</returns> public CreateUserResult CreateUser(BzureUser User) { if (ExistsUserID(User.UserID)) { return(CreateUserResult.UserIDExists); } if (ExistsUserName(User.UserName)) { return(CreateUserResult.UserNameExists); } return(new UserRepository(this).CreateUser(User) ? CreateUserResult.Success : CreateUserResult.OtherFailed); }
/// <summary> /// 用户实体数据映射 /// </summary> /// <param name="reader"></param> /// <returns></returns> public static BzureUser BzureUser_Map(DataReader reader) { BzureUser BzureUser = new BzureUser(reader.GetString("UserID"), reader.GetString("UserName")) { EMail = reader.GetStringNullable("EMail"), Password = reader.GetStringNullable("Password"), OpenID = reader.GetStringNullable("OpenID"), State = reader.GetInt("State"), RoleValue = reader.GetInt("RoleValue"), NickName = reader.GetStringNullable("NickName") }; return(BzureUser); }
static UserRepository() { BzureUser entity = new BzureUser(string.Empty, string.Empty); Type type = entity.GetType(); AppendDataMap(type, "UserID", () => entity.UserID); AppendDataMap(type, "UserName", () => entity.UserName); AppendDataMap(type, "Password", () => entity.Password); AppendDataMap(type, "State", () => entity.State); AppendDataMap(type, "EMail", () => entity.EMail); AppendDataMap(type, "OpenID", () => entity.OpenID); AppendDataMap(type, "RoleValue", () => entity.RoleValue); AppendDataMap(type, "NickName", () => entity.NickName); ResultMapDelegate <BzureUser> queryMap = BzureUser_Map; QueryMapContainer[entity.GetType()] = queryMap; }
static EntityPostRequest BuilderUserStateRequest(BzureUser user) { if (user.IsPersisted()) { EntityPostRequest userStateRequest = new EntityPostRequest(EntityPostRequest.EntityPostMethod.Update) { Entity = user }; userStateRequest.AppendFieldMap(user.State, () => user.State); userStateRequest.AppendConditionMap(user.UserID, () => user.UserID); return(userStateRequest); } else { throw new Exception(string.Format("用户{0}还没有保存", user.UserName)); } }
public ActionResult ResetPassword(string id) { BzureUser user = Actor.Public.AsUserManager().GetUserByID(id); if (user.IsNull()) { return(RedirectToAction("UserList")); } ResetPasswordViewModel ViewModel = new ResetPasswordViewModel() { Title = "重置密码", MasterViewModel = this.MasterViewModel, UserName = user.UserName, Url = Url.RouteUrl("SecurityApp_User", new { action = "ResetPassword" }) }; return(Result(ViewModel)); }
/// <summary> /// 创建新用户 /// </summary> /// <param name="User"></param> /// <returns>是否成功</returns> public CreateUserResult CreateUser(BzureUser User) { CreateUserResult result = this.Decorator.CreateUser(User); if (result == CreateUserResult.Success) { //为每个新创建的用户指定一个默认的角色 TeamRole[] role = Actor.Public.GetRoleByName("注册用户"); IEnumerable <string> Ids = role.Select((TeamRole r) => { return(r.ID); }); if (role.IsNotNull()) { Actor.Public.AuthorizeUser(User, Ids.ToArray(), (bool ok) => { }); } } return(result); }
static void RegisterFactor_UserState(BizTransaction transaction, BzureUser user) { IEntityRequestProcess userStateProcessor = Actor.Public.BuildEntityProcessor("SecurityApp"); TransactionFactor <IEntityRequestProcess, Action <IEntityRequestProcess, EntityPostRequest> > userStateFactor = new TransactionFactor <IEntityRequestProcess, Action <IEntityRequestProcess, EntityPostRequest> >(userStateProcessor); userStateFactor.ActionBody = (IEntityRequestProcess contract, EntityPostRequest request) => { contract.UpdateEntity(request); }; userStateFactor.Action = (Action <IEntityRequestProcess, EntityPostRequest> action) => { EntityPostRequest OrderRequest = BuilderUserStateRequest(user); action(userStateProcessor, OrderRequest); }; transaction.RegisterFactor(userStateFactor); }
public static void AuthorizeUser(this Public Public, BzureUser user, string[] RoleIDs, Action <bool> action) { string[] oldRoles = Actor.Public.AsRoleManager().GetTeamRoleIDsByUserID(user.UserID.ToString()); BizTransaction transaction = BizTransaction.BeginTransaction(); //step 1 修改用户状态 RegisterFactor_UserState(transaction, user); //step 2 删除用户原有的全部角色 RegisterFactor_DeleteRoles(transaction, user, oldRoles); //step 3 添加用户新的角色 RegisterFactor_AddRoles(transaction, user, RoleIDs); bool ok = transaction.TryCommit(); if (ok) { Actor.Public.UpdateLastPermissionChangeTime(); } action(ok); }
/// <summary> /// 创建新用户 /// </summary> /// <param name="User"></param> /// <returns>是否成功</returns> public bool CreateUser(BzureUser User) { string sql = string.Format("INSERT INTO {0}(UserID,UserName,Password,State,EMail,OpenID,RoleValue,NickName) VALUES (@UserID, @UserName, @Password, @State, @EMail, @OpenID,@RoleValue,@NickName)", this.TableName); int ret = new SqlEntityMap <string>(this.ContractProvider, sql) .AddString("UserID", User.UserID) .AddString("UserName", User.UserName) .AddString("Password", User.Password) .AddInt("State", User.State) .AddString("EMail", User.EMail) .AddString("OpenID", User.OpenID) .AddInt("RoleValue", User.RoleValue) .AddString("NickName", User.NickName) .AsNonQuery(); if (ret > 0) { this.MarkPersistenceState(User, true); } return(ret > 0); }
public ActionResult AuthorizeUser(string id) { BzureUser user = Actor.Public.AsUserManager().GetUserByID(id); if (user.IsNull()) { return(RedirectToAction("UserList")); } AuthorizeUserViewModel ViewModel = new AuthorizeUserViewModel() { MasterViewModel = this.MasterViewModel, Title = "用户授权", Url = Url.RouteUrl("SecurityApp_User", new { action = "AuthorizeUser" }), UserName = user.UserName, UserState = user.State > 0, Roles = Actor.Public.AsRoleManager().GetAllTeamRoles(), RIDs = Actor.Public.AsRoleManager().GetTeamRoleIDsByUserID(user.UserID.ToString()) }; return(Result(ViewModel)); }
static void RegisterFactor_DeleteRoles(BizTransaction transaction, BzureUser user, string[] oldRoles) { IEntityRequestProcess deleteRolesProcessor = Actor.Public.BuildEntityProcessor("SecurityApp"); TransactionFactor <IEntityRequestProcess, Action <IEntityRequestProcess, EntityPostRequest> > deleteRolesFactor = new TransactionFactor <IEntityRequestProcess, Action <IEntityRequestProcess, EntityPostRequest> >(deleteRolesProcessor); deleteRolesFactor.ActionBody = (IEntityRequestProcess contract, EntityPostRequest request) => { contract.UpdateEntity(request); }; deleteRolesFactor.Action = (Action <IEntityRequestProcess, EntityPostRequest> action) => { foreach (string roleid in oldRoles) { EntityPostRequest deleteRoleRequest = BuilddeleteRoleRequest(user.UserID.ToString(), roleid); action(deleteRolesProcessor, deleteRoleRequest); } }; transaction.RegisterFactor(deleteRolesFactor); }
public ActionResult AuthorizeUser(string id, string UserState, FormCollection Collection) { BzureUser user = Actor.Public.AsUserManager().GetUserByID(id); if (user.IsNull()) { return(RedirectToAction("UserList")); } //创建新的角色用户对应关系 List <string> Roles = new List <string>(); foreach (string key in Collection.AllKeys.Where(m => m.StartsWith("Role_"))) { string roleid = Collection[key]; if (roleid.IsNotNull()) { Roles.Add(roleid); } } user.State = UserState.IsNullOrEmpty() ? 0 : 1; NotificationViewModel notification = new NotificationViewModel(); Actor.Public.AuthorizeUser(user, Roles.ToArray(), (bool ok) => { if (ok) { notification.Data = NotificationData.YES; notification.Content = string.Format("用户:{0}授权保存成功", user.UserName); notification.NotificationType = NotificationType.Success; } else { notification.Data = NotificationData.NO; notification.Content = string.Format("用户:{0}授权保存失败", user.UserName); notification.NotificationType = NotificationType.Error; } }); return(Result(notification)); }
public ActionResult ResetPassword(string id, FormCollection Collection) { BzureUser user = Actor.Public.AsUserManager().GetUserByID(id); if (user.IsNull()) { return(RedirectToAction("UserList")); } string password = Collection["NewPassword"]; NotificationViewModel notification = new NotificationViewModel(); notification.Data = NotificationData.NO; notification.Content = string.Format("用户:{0}密码重置失败", user.UserName); notification.NotificationType = NotificationType.Error; if (Actor.Public.AsAccountManager().SetPassword(user.UserName, Actor.Public.AsAccountManager().EncryptPassword(password))) { notification.Data = NotificationData.YES; notification.Content = string.Format("用户:{0}密码重置成功", user.UserName); notification.NotificationType = NotificationType.Success; } return(Result(notification)); }
public ActionResult ResetNickName() { if (!Actor.Public.IsAuthenticated) { return(RedirectToAction("UserList")); } BzureUser user = Actor.Me.AsBzurePrincipal().ToUserModel().Entity; if (user.IsNull()) { return(RedirectToAction("UserList")); } ResetNickNameViewModel ViewModel = new ResetNickNameViewModel() { Title = "重置昵称", MasterViewModel = this.MasterViewModel, UserName = user.UserName, NickName = user.NickName, Url = Url.RouteUrl("SecurityApp_User", new { action = "ResetNickName", id = user.UserID }) }; return(Result(ViewModel)); }
public ActionResult ResetNickName(string id, FormCollection Collection) { BzureUser user = Actor.Public.AsUserManager().GetUserByID(id); if (user.IsNull()) { return(RedirectToAction("UserList")); } string newNickName = Collection["NewNickName"]; string msg = string.Format("用户:{0}设置昵称:{1}失败", user.UserName, newNickName); if (Actor.Public.AsUserManager().ExistsNickName(newNickName)) { msg = string.Format("用户:{0}设置昵称:{1}失败,因为昵称已经被占用", user.UserName, newNickName); } else { if (Actor.Public.AsUserManager().SetNickName(user.UserName, newNickName)) { msg = string.Format("用户:{0}昵称重置成功", user.UserName); } else { msg = string.Format("用户:{0}设置昵称:{1}失败,可能是因为软件内部错误", user.UserName, newNickName); } } ResetNickNameViewModel ViewModel = new ResetNickNameViewModel() { Title = "重置昵称", MasterViewModel = this.MasterViewModel, UserName = user.UserName, Url = Url.RouteUrl("SecurityApp_User", new { action = "ResetNickName", id = user.UserID }), Message = msg }; return(Result(ViewModel)); }
/// <summary> /// 创建新用户 /// </summary> /// <param name="User"></param> /// <returns>是否成功</returns> public CreateUserResult CreateUser(BzureUser User) { CreateUserResult result = this.Decorator.CreateUser(User); return(result); }