Exemplo n.º 1
0
 protected void LogIn(object sender, EventArgs e)
 {
     if (IsValid)
     {
         using (WebUsersController wuc = new WebUsersController())
         {
             if (Membership.ValidateUser(Email.Text, Password.Text))
             {
                 FormsAuthentication.RedirectFromLoginPage(Membership.GetUser(Email.Text).ProviderUserKey.ToString(), RememberMe.Checked);
             }
             else
             {
                 AlertBox.SetStatus("The email address and password entered do not match.", UI.AlertBoxType.Error);
             }
         }
     }
 }
Exemplo n.º 2
0
        // The return type can be changed to IEnumerable, however to support
        // paging and sorting, the following parameters must be added:
        //     int maximumRows
        //     int startRowIndex
        //     out int totalRowCount
        //     string sortByExpression
        public IQueryable gvAllUsers_GetData()
        {
            using (WebUsersController wuc = new WebUsersController())
            using(WebUserInfosController wuic = new WebUserInfosController())
            {
                var allInfo = wuic.Get().Select(i=> new {
                    UserID = i.UserID,
                    FirstName = i.FName,
                    LastName = i.LName
                });
                var allUsers = wuc.Get();

                var joined = allUsers.GroupJoin(allInfo, i => i.UserID, j => j.UserID, (i, j) => new { Login = i, Info = j.FirstOrDefault() });

                return joined.Select(i => new UserResult()
                {
                    Email = i.Login.Email,
                    FirstName = i.Info == null ? null : i.Info.FirstName,
                    LastName = i.Info == null ? null : i.Info.LastName,
                    UserID = i.Login.UserID
                }).OrderBy(i => i.LastName).ThenBy(i => i.FirstName).AsQueryable<UserResult>();
            }
        }
Exemplo n.º 3
0
        private List<MyLink> GetPermissionedLinksFromDB()
        {
            using(UserManagement um = new UserManagement())
            using (WebUsersController wuc = new WebUsersController())
            using(LinksController lc = new LinksController())
            {
                FetchStrategy fetch = new FetchStrategy();
                fetch.LoadWith<Link>(i => i.LinkGroup);
                fetch.LoadWith<Link>(i => i.Glyphicon);
                fetch.LoadWith<LinkGroup>(i => i.Glyphicon);
                fetch.LoadWith<Link>(i => i.LinkPermissions);


                IEnumerable<ScopeAssignment> assignedScopes = um.ScopeAssignments.Where(i => i.UserID == CurrentUser.UserID);

                // if user has even one allowed permission, then we need to add it. need to do it by permission then by role
                var allowedByPermission = assignedScopes.Where(i => i.PermissionID.HasValue && !i.IsDeny).Select(i => i.PermissionID.Value);
                var allowedByRole = assignedScopes.Where(i => i.RoleID.HasValue && !i.IsDeny).Select(i => i.Role).SelectMany(i => i.Permissions).Select(i => i.PermissionID);

                List<int> allowed = allowedByPermission.Union(allowedByRole).Distinct().ToList();
                
                // now get the links
                var links = lc.GetWhere(i => i.LinkPermissions.Count() == 0 || i.LinkPermissions.Where(j => !j.IsDeny && allowed.Contains(j.PermissionID)).Count() > 0, fetch);

                var noGroups = links.Where(i => !i.LinkGroupID.HasValue)
                    .OrderBy(i => i.SortOrder)
                    .Select(i => new MyLink()
                    {
                        IsGroup = false,
                        Glyphicon = i.GlyphiconID.HasValue ? i.Glyphicon.Glyphicon1 : null,
                        Name = i.LinkName,
                        CurrentModulePattern = i.CurrentModulePattern,
                        LinkURL = i.LinkURL,
                        Tooltip = i.LinkTitle,
                        ShowInMobileNav = i.ShowInMobileNav
                    }).ToList();

                var groups = links.Where(i => i.LinkGroupID.HasValue)
                    .GroupBy(i => i.LinkGroupID)
                    .OrderBy(i => i.First().LinkGroup.SortOrder)
                    .Select(i => new MyLink()
                    {
                        IsGroup = true,
                        Name = i.First().LinkGroup.LinkGroupName,
                        Glyphicon = i.First().LinkGroup.GlyphiconID.HasValue ? i.First().LinkGroup.Glyphicon.Glyphicon1 : null,
                        CurrentModulePattern = i.First().LinkGroup.CurrentModulePattern,
                        Tooltip = i.First().LinkGroup.LinkGroupName,
                        ShowInMobileNav = i.First().LinkGroup.ShowInMobileNav,
                        MyLinks = i.OrderBy(j => j.SortOrder).Select(j => new MyLink()
                        {
                            Glyphicon = j.GlyphiconID.HasValue ? j.Glyphicon.Glyphicon1 : null,
                            IsGroup = false,
                            Name = j.LinkName,
                            CurrentModulePattern = j.CurrentModulePattern,
                            Tooltip = j.LinkTitle,
                            LinkURL = j.LinkURL,
                            ShowInMobileNav = j.ShowInMobileNav
                        }).ToList()
                    }).ToList();

                List<MyLink> myLinks = new List<MyLink>();
                myLinks.AddRange(noGroups);
                myLinks.AddRange(groups);

                return myLinks;
            }
        }
Exemplo n.º 4
0
        public static WebUser GetCurrentWebUser()
        {
            int userID;

           
            if (!HttpContext.Current.User.Identity.IsAuthenticated || !int.TryParse(HttpContext.Current.User.Identity.Name, out userID))
            {
                //throw new Exception("User not authenticated");
                return null;
            }
             

            WebUser user = HttpContext.Current.Session["CurrentWebUser"] as WebUser;

            if (user != null && user.UserID == userID)
            {
                return user;
            }
            else
            {
                using (WebUsersController wuc = new WebUsersController())
                {
                    HttpContext.Current.Session["CurrentWebUser"] = wuc.GetWhere(i => i.UserID == userID).First();
                    return HttpContext.Current.Session["CurrentWebUser"] as WebUser;
                }
            }
        }
Exemplo n.º 5
0
        private WebUser GetUser(Func<WebUser, bool> query)
        {
            WebUser user;

            using (WebUsersController swuc = new WebUsersController())
            {
                user = swuc.GetWhere(query).FirstOrDefault();
            }

            if (user == null)
            {
                return null;
                //throw new ProviderException("The requested user could not be found.");
            }

            return user;
        }
Exemplo n.º 6
0
        private MembershipUser GetUser(Func<WebUser, bool> search, bool userIsOnline)
        {
            using (WebUsersController swuc = new WebUsersController())
            {
                MembershipUser membershipUser = null;
                WebUser user;
                try
                {
                    user = swuc.GetWhere(search).FirstOrDefault();
                }
                catch (ProviderException)
                {
                    user = null;
                }

                if (user != null)
                {
                    membershipUser = GetMembershipUserFromPersistedEntity(user);

                    if (userIsOnline)
                    {
                        // modify online
                        //user.LastActivityDate = DateTime.Now;
                        //context.SaveChanges();
                    }
                }

                return membershipUser;
            }
        }
Exemplo n.º 7
0
 public override string GetUserNameByEmail(string email)
 {
     using (WebUsersController wuc = new WebUsersController())
     {
         WebUser user = wuc.GetWhere(u => u.Email == email).FirstOrDefault();
         return (user == null) ? "" : user.Email;
     }
 }
Exemplo n.º 8
0
        public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords)
        {
            using (WebUsersController wuc = new WebUsersController())
            {
                var webUsers = wuc.GetWhere(i => i.Email == usernameToMatch).Select(i => GetMembershipUserFromPersistedEntity(i));

                MembershipUserCollection collection = new MembershipUserCollection();
                foreach (MembershipUser user in webUsers)
                {
                    collection.Add(user);
                }
                totalRecords = collection.Count;
                return collection;
            }
        }
Exemplo n.º 9
0
        public override int GetNumberOfUsersOnline()
        {
            TimeSpan onlineSpan = new TimeSpan(0, Membership.UserIsOnlineTimeWindow, 0);
            DateTime compareTime = DateTime.Now.ToUniversalTime().Subtract(onlineSpan);

            using (WebUsersController swuc = new WebUsersController())
            {
                //return swuc.GetWhere(MatchApplication()).Where(u => u.LastActivityDate > compareTime).Distinct().Count();
            }

            throw new NotImplementedException("Get number of online users not currently implemented");
        }
Exemplo n.º 10
0
        public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
        {
            MembershipUserCollection users = new MembershipUserCollection();

            // Retrieve all users for the current application name from the database
            using (WebUsersController swuc = new WebUsersController())
            {
                IEnumerable<WebUser> usersInApplication = swuc.Get();

                totalRecords = usersInApplication.Distinct().Count();
                if (totalRecords <= 0)
                {
                    return users;
                }

                IEnumerable<WebUser> userEntities = usersInApplication.OrderBy(u => u.Email).Skip(pageIndex * pageSize).Take(pageSize);
                foreach (WebUser user in userEntities)
                {
                    users.Add(GetMembershipUserFromPersistedEntity(user));
                }

                return users;
            }
        }
Exemplo n.º 11
0
        public override bool DeleteUser(string username, bool deleteAllRelatedData)
        {
            try
            {
                using (WebUsersController wuc = new WebUsersController())
                {
                    WebUser user;
                    try
                    {
                        user = wuc.GetWhere(u => u.Email == username).FirstOrDefault();
                        if (user == null)
                        {
                            return false;
                        }
                    }
                    catch (ProviderException)
                    {
                        return false;
                    }

                    wuc.Delete(user.UserID);

                    // Need to delete all user related data (Mark as historical)

                    return true;
                }
            }
            catch
            {
                return false;
            }
        }
Exemplo n.º 12
0
        public override string ResetPassword(string username, string answer)
        {
            if (!EnablePasswordReset)
            {
                throw new NotSupportedException("Password reset is not enabled.");
            }

            if (answer == null && RequiresQuestionAndAnswer)
            {
                throw new ProviderException("Password answer required for password reset.");
            }

            string newPassword = Membership.GeneratePassword(NEWPASSWORDLENGTH, MinRequiredNonAlphanumericCharacters);

            ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, newPassword, true);
            OnValidatingPassword(args);

            if (args.Cancel)
            {
                if (args.FailureInformation != null)
                {
                    throw args.FailureInformation;
                }

                throw new MembershipPasswordException("Reset password canceled due to password validation failure.");
            }

            using (WebUsersController swuc = new WebUsersController())
            {
                WebUser user = swuc.GetWhere(u => u.Email == username).FirstOrDefault();

                try
                {
                    user.Password = EncodePassword(newPassword);
                    swuc.Update(user);

                    return newPassword;
                }
                catch(Exception ex)
                {
                    throw new MembershipPasswordException("User not found, or user is locked out. Password not Reset.");
                }
            }
        }
Exemplo n.º 13
0
        public override bool ChangePassword(string username, string oldPassword, string newPassword)
        {
            // Check if user is authenticated
            if (!ValidateUser(username, oldPassword))
            {
                return false;
            }

            // Notify that password is going to change
            ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, newPassword, true);
            OnValidatingPassword(args);

            if (args.Cancel)
            {
                if (args.FailureInformation != null)
                {
                    throw args.FailureInformation;
                }

                throw new MembershipPasswordException("Change password canceled due to new password validation failure.");
            }

            using (WebUsersController swuc = new WebUsersController())
            {
                WebUser user = swuc.GetWhere(u => u.Email == username).FirstOrDefault();

                user.Password = EncodePassword(newPassword);

                try
                {
                    swuc.Update(user);
                    return true;
                }
                catch(Exception ex)
                {
                    return false;
                }
            }
        }
Exemplo n.º 14
0
        public override string GetPassword(string username, string answer)
        {
            if (!EnablePasswordRetrieval)
            {
                throw new ProviderException("Password Retrieval Not Enabled.");
            }

            if (PasswordFormat == MembershipPasswordFormat.Hashed)
            {
                throw new ProviderException("Cannot retrieve Hashed passwords.");
            }

            string password = string.Empty;
            using (WebUsersController wuc = new WebUsersController())
            {
                WebUser user = wuc.GetWhere(swu => swu.Email.Equals(username)).FirstOrDefault();

                if (PasswordFormat == MembershipPasswordFormat.Encrypted)
                {
                    password = UnEncodePassword(user.Password);
                }
            }

            return password;
        }
Exemplo n.º 15
0
        public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
        {
            // Validate email/password
            ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, password, true);
            OnValidatingPassword(args);

            if (args.Cancel)
            {
                status = MembershipCreateStatus.InvalidPassword;
                return null;
            }

            if (RequiresUniqueEmail && GetUserNameByEmail(email) != string.Empty)
            {
                status = MembershipCreateStatus.DuplicateEmail;
                return null;
            }

            // Check whether user with passed username already exists
            MembershipUser user;
            try
            {
                user = GetUser(username, false);
            }
            catch (ProviderException)
            {
                user = null;
            }

            if (user == null)
            {
                DateTime creationDate = DateTime.Now.ToUniversalTime();

                if (providerUserKey != null)
                {
                    if (!(providerUserKey is Int32))
                    {
                        status = MembershipCreateStatus.InvalidProviderUserKey;
                        return null;
                    }
                }

                // Need to add roles
                WebUser newUser = new WebUser
                {
                    Email = username,
                    Password = EncodePassword(password)
                };

                try
                {
                    WebUser response;

                    using (WebUsersController wuc = new WebUsersController())
                    {
                        response = wuc.AddNew(newUser);
                    }

                    status = (response != null) ? MembershipCreateStatus.Success : MembershipCreateStatus.ProviderError;
                }
                catch (Exception)
                {
                    status = MembershipCreateStatus.UserRejected;
                }

                return GetUser(username, false);
            }

            status = MembershipCreateStatus.DuplicateUserName;

            return null;
        }