コード例 #1
0
 public override string[] GetAllRoles()
 {
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         return(Context.Roles.Select(Rl => Rl.RoleName).ToArray());
     }
 }
コード例 #2
0
 public override MembershipUser GetUser(string username, bool userIsOnline)
 {
     if (string.IsNullOrEmpty(username))
     {
         return(null);
     }
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         User User = null;
         User = Context.Users.FirstOrDefault(Usr => Usr.Username == username);
         if (User != null)
         {
             if (userIsOnline)
             {
                 User.LastActivityDate = DateTime.UtcNow;
                 Context.SaveChanges();
             }
             return(new MembershipUser(Membership.Provider.Name, User.Username, User.UserId, User.Email, null, null, User.IsApproved, User.IsLockedOut, User.CreateDate.Value, User.LastLoginDate.Value, User.LastActivityDate.Value, User.LastPasswordChangedDate.Value, User.LastLockoutDate.Value));
         }
         else
         {
             return(null);
         }
     }
 }
コード例 #3
0
    public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
    {
        if (providerUserKey is Guid)
        {
        }
        else
        {
            return(null);
        }

        using (ApertureDataContext Context = new ApertureDataContext())
        {
            User User = null;
            User = Context.Users.Find(providerUserKey);
            if (User != null)
            {
                if (userIsOnline)
                {
                    User.LastActivityDate = DateTime.UtcNow;
                    Context.SaveChanges();
                }
                return(new MembershipUser(Membership.Provider.Name, User.Username, User.UserId, User.Email, null, null, User.IsApproved, User.IsLockedOut, User.CreateDate.Value, User.LastLoginDate.Value, User.LastActivityDate.Value, User.LastPasswordChangedDate.Value, User.LastLockoutDate.Value));
            }
            else
            {
                return(null);
            }
        }
    }
コード例 #4
0
 public override bool IsUserInRole(string username, string roleName)
 {
     if (string.IsNullOrEmpty(username))
     {
         return(false);
     }
     if (string.IsNullOrEmpty(roleName))
     {
         return(false);
     }
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         User User = null;
         User = Context.Users.FirstOrDefault(Usr => Usr.Username == username);
         if (User == null)
         {
             return(false);
         }
         Role Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName);
         if (Role == null)
         {
             return(false);
         }
         return(User.Roles.Contains(Role));
     }
 }
コード例 #5
0
 public override bool DeleteRole(string roleName, bool throwOnPopulatedRole)
 {
     if (string.IsNullOrEmpty(roleName))
     {
         return(false);
     }
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         Role Role = null;
         Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName);
         if (Role == null)
         {
             return(false);
         }
         if (throwOnPopulatedRole)
         {
             if (Role.Users.Any())
             {
                 return(false);
             }
         }
         else
         {
             Role.Users.Clear();
         }
         Context.Roles.Remove(Role);
         Context.SaveChanges();
         return(true);
     }
 }
コード例 #6
0
 public override bool ValidateUser(string username, string password)
 {
     if (string.IsNullOrEmpty(username))
     {
         return(false);
     }
     if (string.IsNullOrEmpty(password))
     {
         return(false);
     }
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         User User = null;
         User = Context.Users.FirstOrDefault(Usr => Usr.Username == username);
         if (User == null)
         {
             return(false);
         }
         if (!User.IsApproved)
         {
             return(false);
         }
         if (User.IsLockedOut)
         {
             return(false);
         }
         String  HashedPassword        = User.Password;
         Boolean VerificationSucceeded = (HashedPassword != null && Crypto.VerifyHashedPassword(HashedPassword, password));
         if (VerificationSucceeded)
         {
             User.PasswordFailuresSinceLastSuccess = 0;
             User.LastLoginDate    = DateTime.UtcNow;
             User.LastActivityDate = DateTime.UtcNow;
         }
         else
         {
             int Failures = User.PasswordFailuresSinceLastSuccess;
             if (Failures < MaxInvalidPasswordAttempts)
             {
                 User.PasswordFailuresSinceLastSuccess += 1;
                 User.LastPasswordFailureDate           = DateTime.UtcNow;
             }
             else if (Failures >= MaxInvalidPasswordAttempts)
             {
                 User.LastPasswordFailureDate = DateTime.UtcNow;
                 User.LastLockoutDate         = DateTime.UtcNow;
                 User.IsLockedOut             = true;
             }
         }
         Context.SaveChanges();
         if (VerificationSucceeded)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
コード例 #7
0
    public override int GetNumberOfUsersOnline()
    {
        DateTime DateActive = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(Convert.ToDouble(Membership.UserIsOnlineTimeWindow)));

        using (ApertureDataContext Context = new ApertureDataContext())
        {
            return(Context.Users.Where(Usr => Usr.LastActivityDate > DateActive).Count());
        }
    }
コード例 #8
0
 public override bool ChangePassword(string username, string oldPassword, string newPassword)
 {
     if (string.IsNullOrEmpty(username))
     {
         return(false);
     }
     if (string.IsNullOrEmpty(oldPassword))
     {
         return(false);
     }
     if (string.IsNullOrEmpty(newPassword))
     {
         return(false);
     }
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         User User = null;
         User = Context.Users.FirstOrDefault(Usr => Usr.Username == username);
         if (User == null)
         {
             return(false);
         }
         String  HashedPassword        = User.Password;
         Boolean VerificationSucceeded = (HashedPassword != null && Crypto.VerifyHashedPassword(HashedPassword, oldPassword));
         if (VerificationSucceeded)
         {
             User.PasswordFailuresSinceLastSuccess = 0;
         }
         else
         {
             int Failures = User.PasswordFailuresSinceLastSuccess;
             if (Failures < MaxInvalidPasswordAttempts)
             {
                 User.PasswordFailuresSinceLastSuccess += 1;
                 User.LastPasswordFailureDate           = DateTime.UtcNow;
             }
             else if (Failures >= MaxInvalidPasswordAttempts)
             {
                 User.LastPasswordFailureDate = DateTime.UtcNow;
                 User.LastLockoutDate         = DateTime.UtcNow;
                 User.IsLockedOut             = true;
             }
             Context.SaveChanges();
             return(false);
         }
         String NewHashedPassword = Crypto.HashPassword(newPassword);
         if (NewHashedPassword.Length > 128)
         {
             return(false);
         }
         User.Password = NewHashedPassword;
         User.LastPasswordChangedDate = DateTime.UtcNow;
         Context.SaveChanges();
         return(true);
     }
 }
コード例 #9
0
    public string CreateAccount(string userName, string password, bool requireConfirmationToken)
    {
        if (string.IsNullOrEmpty(userName))
        {
            throw new MembershipCreateUserException(MembershipCreateStatus.InvalidUserName);
        }

        if (string.IsNullOrEmpty(password))
        {
            throw new MembershipCreateUserException(MembershipCreateStatus.InvalidPassword);
        }

        string hashedPassword = Crypto.HashPassword(password);

        if (hashedPassword.Length > 128)
        {
            throw new MembershipCreateUserException(MembershipCreateStatus.InvalidPassword);
        }

        using (ApertureDataContext Context = new ApertureDataContext())
        {
            if (Context.Users.Where(Usr => Usr.Username == userName).Any())
            {
                throw new MembershipCreateUserException(MembershipCreateStatus.DuplicateUserName);
            }

            string token = string.Empty;
            if (requireConfirmationToken)
            {
                token = GenerateToken();
            }

            User NewUser = new User
            {
                UserId     = Guid.NewGuid(),
                Username   = userName,
                Password   = hashedPassword,
                IsApproved = !requireConfirmationToken,
                Email      = string.Empty,
                CreateDate = DateTime.UtcNow,
                LastPasswordChangedDate          = DateTime.UtcNow,
                PasswordFailuresSinceLastSuccess = 0,
                LastLoginDate           = DateTime.UtcNow,
                LastActivityDate        = DateTime.UtcNow,
                LastLockoutDate         = DateTime.UtcNow,
                IsLockedOut             = false,
                LastPasswordFailureDate = DateTime.UtcNow,
                ConfirmationToken       = token
            };

            Context.Users.Add(NewUser);
            Context.SaveChanges();
            return(token);
        }
    }
コード例 #10
0
    public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
    {
        MembershipUserCollection MembershipUsers = new MembershipUserCollection();

        using (ApertureDataContext Context = new ApertureDataContext())
        {
            totalRecords = Context.Users.Count();
            IQueryable <User> Users = Context.Users.OrderBy(Usrn => Usrn.Username).Skip(pageIndex * pageSize).Take(pageSize);
            foreach (User user in Users)
            {
                MembershipUsers.Add(new MembershipUser(Membership.Provider.Name, user.Username, user.UserId, user.Email, null, null, user.IsApproved, user.IsLockedOut, user.CreateDate.Value, user.LastLoginDate.Value, user.LastActivityDate.Value, user.LastPasswordChangedDate.Value, user.LastLockoutDate.Value));
            }
        }
        return(MembershipUsers);
    }
コード例 #11
0
 public override string GetUserNameByEmail(string email)
 {
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         User User = null;
         User = Context.Users.FirstOrDefault(Usr => Usr.Email == email);
         if (User != null)
         {
             return(User.Username);
         }
         else
         {
             return(string.Empty);
         }
     }
 }
コード例 #12
0
    public override string[] FindUsersInRole(string roleName, string usernameToMatch)
    {
        if (string.IsNullOrEmpty(roleName))
        {
            return(null);
        }

        if (string.IsNullOrEmpty(usernameToMatch))
        {
            return(null);
        }

        using (ApertureDataContext Context = new ApertureDataContext())
        {
            return((from Rl in Context.Roles from Usr in Rl.Users where Rl.RoleName == roleName && Usr.Username.Contains(usernameToMatch) select Usr.Username).ToArray());
        }
    }
コード例 #13
0
        public ActionResult SaveFiles(string qqfile)
        {
            HttpPostedFileBase          file     = Request.Files[0];
            Dictionary <string, string> versions = new Dictionary <string, string>();

            try
            {
                //Define the versions to generate
                versions.Add("_thumb", "width=" + 100 + "&height=" + 100 + "&crop=auto&format=jpg"); //Crop to square thumbnail
                versions.Add("_medium", "maxwidth=400&maxheight=400&format=jpg");                    //Fit inside 400x400 area, jpeg
                versions.Add("_large", "maxwidth=1900&maxheight=1900&format=jpg");                   //Fit inside 1900x1200 area
                using (var db = new ApertureDataContext())
                {
                    if (file.ContentLength > 0)
                    { //Skip unused file controls.
                        string fileName  = Path.GetFileNameWithoutExtension(file.FileName);
                        string extension = Path.GetExtension(file.FileName);


                        //Generate each version
                        foreach (string suffix in versions.Keys)
                        {
                            UploadFilesToStorageAccount(file, fileName + suffix, versions[suffix]);
                        }

                        var photo = new Photo()
                        {
                            PhotoUrl       = SiteSettings.UploadPath + fileName + "_large.jpg",
                            ThumbnailUrl   = SiteSettings.UploadPath + fileName + "_thumb.jpg",
                            MediumPhotoUrl = SiteSettings.UploadPath + fileName + "_medium.jpg",
                        };


                        db.Photos.Add(photo);
                        db.SaveChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, message = ex.Message }, "application/json"));
            }
            return(Json(new { success = true }, "text/html"));
        }
コード例 #14
0
 public override bool UnlockUser(string userName)
 {
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         User User = null;
         User = Context.Users.FirstOrDefault(Usr => Usr.Username == userName);
         if (User != null)
         {
             User.IsLockedOut = false;
             User.PasswordFailuresSinceLastSuccess = 0;
             Context.SaveChanges();
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
コード例 #15
0
 public override void AddUsersToRoles(string[] usernames, string[] roleNames)
 {
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         List <User> Users = Context.Users.Where(Usr => usernames.Contains(Usr.Username)).ToList();
         List <Role> Roles = Context.Roles.Where(Rl => roleNames.Contains(Rl.RoleName)).ToList();
         foreach (User user in Users)
         {
             foreach (Role role in Roles)
             {
                 if (!user.Roles.Contains(role))
                 {
                     user.Roles.Add(role);
                 }
             }
         }
         Context.SaveChanges();
     }
 }
コード例 #16
0
 public override bool RoleExists(string roleName)
 {
     if (string.IsNullOrEmpty(roleName))
     {
         return(false);
     }
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         Role Role = null;
         Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName);
         if (Role != null)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
コード例 #17
0
 public override string[] GetUsersInRole(string roleName)
 {
     if (string.IsNullOrEmpty(roleName))
     {
         return(null);
     }
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         Role Role = null;
         Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName);
         if (Role != null)
         {
             return(Role.Users.Select(Usr => Usr.Username).ToArray());
         }
         else
         {
             return(null);
         }
     }
 }
コード例 #18
0
 public override string[] GetRolesForUser(string username)
 {
     if (string.IsNullOrEmpty(username))
     {
         return(null);
     }
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         User User = null;
         User = Context.Users.FirstOrDefault(Usr => Usr.Username == username);
         if (User != null)
         {
             return(User.Roles.Select(Rl => Rl.RoleName).ToArray());
         }
         else
         {
             return(null);
         }
     }
 }
コード例 #19
0
 public override void CreateRole(string roleName)
 {
     if (!string.IsNullOrEmpty(roleName))
     {
         using (ApertureDataContext Context = new ApertureDataContext())
         {
             Role Role = null;
             Role = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName);
             if (Role == null)
             {
                 Role NewRole = new Role
                 {
                     RoleId   = Guid.NewGuid(),
                     RoleName = roleName
                 };
                 Context.Roles.Add(NewRole);
                 Context.SaveChanges();
             }
         }
     }
 }
コード例 #20
0
ファイル: HtmlExtensions.cs プロジェクト: mattkrebs/Aperture
        /// <summary>
        /// Get SelectList for Html Dropdownlistfor helpler method.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="defaultText">Text for first entry. if empty no default</param>
        /// <returns></returns>
        public static List <SelectListItem> GetDropDownList <T>(string defaultText = "") where T : class, ApertureCMS.Models.ILookup
        {
            using (ApertureDataContext db = new ApertureDataContext())
            {
                var dbSet = db.Set <T>();
                var list  = new List <SelectListItem>();
                if (!String.IsNullOrEmpty(defaultText))
                {
                    list.Add(new SelectListItem()
                    {
                        Text = defaultText, Value = ""
                    });
                }

                list.AddRange(dbSet.ToList().Select((item, index) => new SelectListItem
                {
                    Value = item.Id.ToString(),
                    Text  = item.Name
                }).ToList());
                return(list);
            }
        }
コード例 #21
0
 public override bool DeleteUser(string username, bool deleteAllRelatedData)
 {
     if (string.IsNullOrEmpty(username))
     {
         return(false);
     }
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         User User = null;
         User = Context.Users.FirstOrDefault(Usr => Usr.Username == username);
         if (User != null)
         {
             Context.Users.Remove(User);
             Context.SaveChanges();
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
コード例 #22
0
 public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames)
 {
     using (ApertureDataContext Context = new ApertureDataContext())
     {
         foreach (String username in usernames)
         {
             String us   = username;
             User   user = Context.Users.FirstOrDefault(U => U.Username == us);
             if (user != null)
             {
                 foreach (String roleName in roleNames)
                 {
                     String rl   = roleName;
                     Role   role = user.Roles.FirstOrDefault(R => R.RoleName == rl);
                     if (role != null)
                     {
                         user.Roles.Remove(role);
                     }
                 }
             }
         }
         Context.SaveChanges();
     }
 }
コード例 #23
0
ファイル: WebSecurity.cs プロジェクト: mattkrebs/Aperture
    public static MembershipCreateStatus Register(string Username, string Password, string Email, bool IsApproved, string FirstName, string LastName)
    {
        MembershipCreateStatus CreateStatus;

        Membership.CreateUser(Username, Password, Email, null, null, IsApproved, out CreateStatus);

        if (CreateStatus == MembershipCreateStatus.Success)
        {
            using (ApertureDataContext Context = new ApertureDataContext())
            {
                User User = Context.Users.FirstOrDefault(Usr => Usr.Username == Username);
                User.FirstName = FirstName;
                User.LastName  = LastName;
                Context.SaveChanges();
            }

            if (IsApproved)
            {
                FormsAuthentication.SetAuthCookie(Username, false);
            }
        }

        return(CreateStatus);
    }
コード例 #24
0
    public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
    {
        if (string.IsNullOrEmpty(username))
        {
            status = MembershipCreateStatus.InvalidUserName;
            return(null);
        }
        if (string.IsNullOrEmpty(password))
        {
            status = MembershipCreateStatus.InvalidPassword;
            return(null);
        }
        if (string.IsNullOrEmpty(email))
        {
            status = MembershipCreateStatus.InvalidEmail;
            return(null);
        }

        string HashedPassword = Crypto.HashPassword(password);

        if (HashedPassword.Length > 128)
        {
            status = MembershipCreateStatus.InvalidPassword;
            return(null);
        }

        using (ApertureDataContext Context = new ApertureDataContext())
        {
            if (Context.Users.Where(Usr => Usr.Username == username).Any())
            {
                status = MembershipCreateStatus.DuplicateUserName;
                return(null);
            }

            if (Context.Users.Where(Usr => Usr.Email == email).Any())
            {
                status = MembershipCreateStatus.DuplicateEmail;
                return(null);
            }

            User NewUser = new User
            {
                UserId     = Guid.NewGuid(),
                Username   = username,
                Password   = HashedPassword,
                IsApproved = isApproved,
                Email      = email,
                CreateDate = DateTime.UtcNow,
                LastPasswordChangedDate          = DateTime.UtcNow,
                PasswordFailuresSinceLastSuccess = 0,
                LastLoginDate           = DateTime.UtcNow,
                LastActivityDate        = DateTime.UtcNow,
                LastLockoutDate         = DateTime.UtcNow,
                IsLockedOut             = false,
                LastPasswordFailureDate = DateTime.UtcNow
            };

            Context.Users.Add(NewUser);
            Context.SaveChanges();
            status = MembershipCreateStatus.Success;
            return(new MembershipUser(Membership.Provider.Name, NewUser.Username, NewUser.UserId, NewUser.Email, null, null, NewUser.IsApproved, NewUser.IsLockedOut, NewUser.CreateDate.Value, NewUser.LastLoginDate.Value, NewUser.LastActivityDate.Value, NewUser.LastPasswordChangedDate.Value, NewUser.LastLockoutDate.Value));
        }
    }
コード例 #25
0
 public ApertureRepository(ApertureDataContext context)
 {
     this.context = context;
     this.dbSet   = context.Set <TEntity>();
 }