none
Silverlight WCF+RIA,如何使用ASP.NET Membership 管理用户 RRS feed

  • 问题

  • 我使用了一个 domain service 在后台管理用户,想请教如何在后台管理用户的Rolse,比如添加新的Roles,更改用户的Roles

     [EnableClientAccess(RequiresSecureEndpoint = false /* This should be set to true before the application is deployed */)]
      public class MembershipService : DomainServiceBase
      {
        [RequiresRole("Administrator")]
        public IEnumerable<MembershipServiceUser> GetUsers()
        {
          return Membership.GetAllUsers().Cast<MembershipUser>().Select(u => new MembershipServiceUser(u));
        }
    
        [RequiresRole("Administrator")]
        public IEnumerable<MembershipServiceUser> GetUsersByEmail(string email)
        {
          return Membership.FindUsersByEmail(email).Cast<MembershipUser>().Select(u => new MembershipServiceUser(u));
        }
    
        [RequiresRole("Administrator")]
        public IEnumerable<MembershipServiceUser> GetUsersByName(string userName)
        {
          return Membership.FindUsersByName(userName).Cast<MembershipUser>().Select(u => new MembershipServiceUser(u));
        }
    
        [Invoke(HasSideEffects = true)]
        public void CreateUser(MembershipServiceUser user, string password)
        {
          Membership.CreateUser(user.UserName, password, user.Email);
        }
    
        [RequiresRole("Administrator")]
        public void DeleteUser(MembershipServiceUser user)
        {
          Membership.DeleteUser(user.UserName);
        }
    
        [RequiresRole("Administrator")]
        public void UpdateUser(MembershipServiceUser user)
        {
          Membership.UpdateUser(user.ToMembershipUser());
        }
    
        [RequiresRole("Administrator")]
        [Update(UsingCustomMethod = true)]
        public void ChangePassword(MembershipServiceUser user, string oldPassword, string newPassword)
        {
          user.ToMembershipUser().ChangePassword(oldPassword, newPassword);
        }
    
        [RequiresRole("Administrator")]
        public void ResetPassword(MembershipServiceUser user)
        {
          user.ToMembershipUser().ResetPassword();
        }
    
        [RequiresRole("Administrator")]
        public void UnlockUser(MembershipServiceUser user)
        {
          user.ToMembershipUser().UnlockUser();
        }
      }
    
      public class MembershipServiceUser
      {
        public string Comment { get; set; }
        [Editable(false)]
        public DateTime CreationDate { get; set; }
        [Key]
        [Editable(false, AllowInitialValue = true)]
        public string Email { get; set; }
        public bool IsApproved { get; set; }
        [Editable(false)]
        public bool IsLockedOut { get; set; }
        [Editable(false)]
        public bool IsOnline { get; set; }
        public DateTime LastActivityDate { get; set; }
        [Editable(false)]
        public DateTime LastLockoutDate { get; set; }
        public DateTime LastLoginDate { get; set; }
        [Editable(false)]
        public DateTime LastPasswordChangedDate { get; set; }
        [Editable(false)]
        public string PasswordQuestion { get; set; }
        [Key]
        [Editable(false, AllowInitialValue = true)]
        public string UserName { get; set; }
    
        public MembershipServiceUser() { }
        public MembershipServiceUser(MembershipUser user)
        {
          this.FromMembershipUser(user);
        }
    
        public void FromMembershipUser(MembershipUser user)
        {
          this.Comment = user.Comment;
          this.CreationDate = user.CreationDate;
          this.Email = user.Email;
          this.IsApproved = user.IsApproved;
          this.IsLockedOut = user.IsLockedOut;
          this.IsOnline = user.IsOnline;
          this.LastActivityDate = user.LastActivityDate;
          this.LastLockoutDate = user.LastLockoutDate;
          this.LastLoginDate = user.LastLoginDate;
          this.LastPasswordChangedDate = user.LastPasswordChangedDate;
          this.PasswordQuestion = user.PasswordQuestion;
          this.UserName = user.UserName;
        }
    
        public MembershipUser ToMembershipUser()
        {
          MembershipUser user = Membership.GetUser(this.UserName);
    
          if (user.Comment != this.Comment) user.Comment = this.Comment;
          if (user.IsApproved != this.IsApproved) user.IsApproved = this.IsApproved;
          if (user.LastActivityDate != this.LastActivityDate) user.LastActivityDate = this.LastActivityDate;
          if (user.LastLoginDate != this.LastLoginDate) user.LastLoginDate = this.LastLoginDate;
    
          return user;
        }
      }
    
    2010年9月15日 1:03

全部回复