Example #1
0
        protected override void Seed(FCIH_OJ.Models.UsersContext context)
        {
            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method
            //  to avoid creating duplicate seed data. E.g.
            //

            //////////////////////////////////////////////////////
            // user module

            WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);

            SimpleRoleProvider       roles      = new SimpleRoleProvider(Roles.Provider);
            SimpleMembershipProvider membership = new SimpleMembershipProvider(Membership.Provider);

            if (!roles.RoleExists("admin"))
            {
                roles.CreateRole("admin");
            }
            if (!WebSecurity.UserExists("admin"))
            {
                WebSecurity.CreateUserAndAccount("admin", "admin", new {
                    Email    = "*****@*****.**",
                    Password = "******"
                });
            }
            if (!roles.GetRolesForUser("admin").Contains("admin"))
            {
                roles.AddUsersToRoles(new[] { "admin" }, new[] { "admin" });
            }
            //end of user module
            //////////////////////////////////////////////////////
            //other modules
        }
Example #2
0
        public ActionResult DeleteUser(int id = 0)
        {
            var user = userprofile.UserProfiles.ToList();
            SimpleRoleProvider       roles      = (SimpleRoleProvider)Roles.Provider;
            SimpleMembershipProvider membership = (SimpleMembershipProvider)Membership.Provider;

            UserProfile profile = userprofile.UserProfiles.Find(id);

            if (profile == null)
            {
                return(View(user));
            }
            else
            {
                var roole = roles.GetRolesForUser(profile.UserName);
                roles.RemoveUsersFromRoles(new[] { profile.UserName }, roole);
                membership.DeleteUser(profile.UserName, true);

                var autorised = Request.IsAuthenticated ? User.Identity.Name : "nothing";
                if (autorised == profile.UserName)
                {
                    WebSecurity.Logout();
                }

                TempData["_UserRole"] = "Prosto";
                return(RedirectToAction("DeleteUser"));
            }
        }
        public JsonResult Index(Guid?id, int?page, int?start, int?limit)
        {
            try
            {
                SimpleMembershipProvider provider = (SimpleMembershipProvider)Membership.Provider;

                // Поиск всех записей
                var allItems   = unitOfWork.CustomerRepository().Get(orderBy: q => q.OrderBy(d => d.Name));
                int itemsCount = allItems.Count();
                int pageSize   = (limit ?? 5);
                int pageNumber = (page ?? 1);
                var list       = allItems.ToList().ToPagedList(pageNumber, pageSize);

                List <CustomerWithLogin> listWithLogins = new List <CustomerWithLogin>();
                foreach (var item in list)
                {
                    CustomerWithLogin customerWithLogin = new CustomerWithLogin();
                    customerWithLogin.Address    = item.Address;
                    customerWithLogin.Code       = item.Code;
                    customerWithLogin.CustomerId = item.CustomerId;
                    customerWithLogin.Discount   = item.Discount;
                    customerWithLogin.Name       = item.Name;
                    customerWithLogin.UserId     = item.UserId;
                    customerWithLogin.Login      = provider.GetUserNameFromId(item.UserId);
                    listWithLogins.Add(customerWithLogin);
                }

                return(this.Json(new { success = true, total = itemsCount, data = listWithLogins }, JsonRequestBehavior.AllowGet));
            }
            catch
            {
                return(this.Json(new { success = false }, JsonRequestBehavior.AllowGet));
            }
        }
        public JsonResult Delete(Guid id)
        {
            try
            {
                Customer customer = unitOfWork.CustomerRepository().GetByID(id);
                int      userId   = customer.UserId;
                unitOfWork.CustomerRepository().Delete(customer);
                unitOfWork.Save();

                SimpleMembershipProvider membership = (SimpleMembershipProvider)Membership.Provider;
                string userName = membership.GetUserNameFromId(userId);

                if (Roles.GetRolesForUser(userName).Count() > 0)
                {
                    Roles.RemoveUserFromRoles(userName, Roles.GetRolesForUser(userName));
                }
                membership.DeleteAccount(userName);
                membership.DeleteUser(userName, true);

                return(this.Json(new { success = true }));
            }
            catch
            {
                return(this.Json(new { success = false }));
            }
        }
Example #5
0
        public ActionResult Login(LoginModel model, string returnUrl)
        {
            SimpleRoleProvider       roles      = (SimpleRoleProvider)Roles.Provider;
            SimpleMembershipProvider membership = (SimpleMembershipProvider)Membership.Provider;

            if (roles.IsUserInRole(model.UserName, "Admin"))
            {
                TempData["_UserRole"] = "Admin";
            }
            else if (roles.IsUserInRole(model.UserName, "Moderator"))
            {
                TempData["_UserRole"] = "Moderator";
            }

            else
            {
                TempData["_UserRole"] = "Prosto";
            }

            if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
            {
                return(RedirectToLocal(returnUrl));
            }

            // Появление этого сообщения означает наличие ошибки; повторное отображение формы
            ModelState.AddModelError("", "Имя пользователя или пароль указаны неверно.");
            return(View(model));
        }
Example #6
0
        public ActionResult DeleteAccount(string UserName)
        {
            try
            {
                if (!WebSecurity.UserExists(UserName))
                {
                    return(Content(String.Format("<h4 class='text-danger'>Не найден пользователь '{0}'</h4>", UserName)));
                }

                string[] userRoles = Roles.GetRolesForUser(UserName);
                if (userRoles.Count() > 0)
                {
                    Roles.RemoveUserFromRoles(UserName, userRoles);
                }
                SimpleMembershipProvider provider = Membership.Provider as SimpleMembershipProvider;
                bool deleteResult = provider.DeleteAccount(UserName);
                deleteResult = deleteResult && provider.DeleteUser(UserName, true);
                if (deleteResult)
                {
                    return(Content(String.Format("<h4 class='text-success'>Аккаунт пользователя '{0}' успешно удален</h4>", UserName)));
                }
                else
                {
                    return(Content(String.Format("<h4 class='text-danger'>Аккаунта пользователя '{0}' возможно не удалось удалить полностью</h4>", UserName)));
                }
            }
            catch (Exception)
            {
                return(Content(String.Format("<h4 class='text-danger'>Возникли ошибки в процессе удаления аккаунта пользователя '{0}'</h4>", UserName)));
            }
        }
            public SimpleMembershipInitializer()
            {
                Database.SetInitializer <UsersContext>(null);

                try
                {
                    using (var context = new UsersContext())
                    {
                        if (!context.Database.Exists())
                        {
                            // Create the SimpleMembership database without Entity Framework migration schema
                            ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                        }
                    }

                    WebSecurity.InitializeDatabaseConnection("UsersConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);

                    SimpleMembershipProvider provider = (SimpleMembershipProvider)Membership.Provider;
                    if (provider.GetUser("user", false) == null)
                    {
                        provider.CreateUserAndAccount("user", "user1111");
                    }

                    //WebSecurity.CreateUserAndAccount("user1", "user1111");
                }
                catch (Exception ex)
                {
                    throw new InvalidOperationException("The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588", ex);
                }
            }
Example #8
0
        internal static void InitializeMembershipProvider(
            SimpleMembershipProvider simpleMembership,
            DatabaseConnectionInfo connect,
            string userTableName,
            string userIdColumn,
            string userNameColumn,
            bool createTables,
            SimpleMembershipProviderCasingBehavior casingBehavior)
        {
            if (simpleMembership.InitializeCalled)
            {
                throw new InvalidOperationException(WebDataResources.Security_InitializeAlreadyCalled);
            }

            simpleMembership.CasingBehavior = casingBehavior;
            simpleMembership.ConnectionInfo = connect;
            simpleMembership.UserIdColumn   = userIdColumn;
            simpleMembership.UserNameColumn = userNameColumn;
            simpleMembership.UserTableName  = userTableName;
            if (createTables)
            {
                simpleMembership.CreateTablesIfNeeded();
            }
            else
            {
                // We want to validate the user table if we aren't creating them
                simpleMembership.ValidateUserTable();
            }
            simpleMembership.InitializeCalled = true;
        }
Example #9
0
        public void SimpleMembershipProvider_CasingBehavior_ValidatesRange(int value, bool isValid)
        {
            // Arrange
            var provider = new SimpleMembershipProvider();

            var message =
                "The value of argument 'value' (" + value + ") is invalid for Enum type " +
                "'SimpleMembershipProviderCasingBehavior'." + Environment.NewLine +
                "Parameter name: value";

            // Act
            Exception exception = null;

            try
            {
                provider.CasingBehavior = (SimpleMembershipProviderCasingBehavior)value;
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            // Assert
            if (isValid)
            {
                Assert.Equal((SimpleMembershipProviderCasingBehavior)value, provider.CasingBehavior);
            }
            else
            {
                Assert.NotNull(exception);
                Assert.IsAssignableFrom <InvalidEnumArgumentException>(exception);
                Assert.Equal(message, exception.Message);
            }
        }
        public void Initialize()
        {
            Database.SetInitializer <ShopDBContext>(null);

            try
            {
                using (var context = new ShopDBContext())
                {
                    if (!context.Database.Exists())
                    {
                        ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                    }
                }

                WebSecurity.InitializeDatabaseConnection("ShopDB", "Users", "UserId", "Email", autoCreateTables: true);
                SimpleRoleProvider       roles       = (SimpleRoleProvider)Roles.Provider;
                SimpleMembershipProvider memberships = (SimpleMembershipProvider)Membership.Provider;

                if (!roles.RoleExists("Admin"))
                {
                    roles.CreateRole("Admin");
                }

                if (memberships.GetUser("*****@*****.**", false) == null)
                {
                    memberships.CreateUserAndAccount("*****@*****.**", "qwerty1234");
                    roles.AddUsersToRoles(new[] { "*****@*****.**" }, new[] { "Admin" });
                }
            }
            catch (Exception ex)
            {
                throw new InvalidOperationException("The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588", ex);
            }
        }
Example #11
0
        public bool ResetPassword(ResetPasswordParameters parameters)
        {
            if (parameters == null)
            {
                throw new ClientException("It is not allowed to call this authentication service method with no parameters provided.");
            }
            _logger.Trace("ResetPassword");
            parameters.Validate();
            CheckPasswordStrength(parameters.NewPassword);

            int userId = WebSecurity.GetUserIdFromPasswordResetToken(parameters.PasswordResetToken);
            SimpleMembershipProvider provider = (SimpleMembershipProvider)Membership.Provider;
            string userName = provider.GetUserNameFromId(userId);

            _logger.Trace(() => "ResetPassword " + userName);

            bool successfulReset = SafeExecute(
                () => WebSecurity.ResetPassword(parameters.PasswordResetToken, parameters.NewPassword),
                "ResetPassword", userName);

            if (successfulReset && !string.IsNullOrEmpty(userName))
            {
                SafeExecute( // Login does not need to be successful for this function to return true.
                    () => { Login(new LoginParameters {
                        UserName = userName, Password = parameters.NewPassword, PersistCookie = false
                    }); },
                    "Login after ResetPassword", userName);
            }

            return(successfulReset);
        }
Example #12
0
        protected void InitializeUserAndRoles()
        {
            SimpleRoleProvider       roles      = (SimpleRoleProvider)Roles.Provider;
            SimpleMembershipProvider membership = (SimpleMembershipProvider)Membership.Provider;

            if (!roles.RoleExists("Admin"))
            {
                roles.CreateRole("Admin");
            }
            if (!roles.RoleExists("Manager"))
            {
                roles.CreateRole("Manager");
            }
            if (!roles.RoleExists("User"))
            {
                roles.CreateRole("User");
            }
            if (membership.GetUser("*****@*****.**", false) == null)
            {
                WebSecurity.CreateUserAndAccount("*****@*****.**", "123456", new { IsBlocked = false });
                roles.AddUsersToRoles(new[] { "*****@*****.**" }, new[] { "Admin" });
            }
            if (membership.GetUser("*****@*****.**", false) == null)
            {
                WebSecurity.CreateUserAndAccount("*****@*****.**", "123456", new { IsBlocked = false });
                roles.AddUsersToRoles(new[] { "*****@*****.**" }, new[] { "User" });
            }
        }
        //
        // GET: /Account/LogOff

        public ActionResult LogOff()
        {
            FormsAuthentication.SignOut();

            logoutListener.OnLoggedOff.Invoke(SimpleMembershipProvider.GetUser(HttpContext.User.Identity.Name));

            return(RedirectToAction("Index", "Home"));
        }
Example #14
0
 public ExcelHelper(ExcelWorkbook workBook, PortalContext db)
 {
     _usersRegister  = new Dictionary <string, UserRegister>();
     currentWorkBook = workBook;
     roles           = (SimpleRoleProvider)Roles.Provider;
     membership      = (SimpleMembershipProvider)Membership.Provider;
     currentDb       = db;
 }
Example #15
0
        private static SimpleMembershipProvider CreateDefaultSimpleMembershipProvider(string name, System.Web.Security.MembershipProvider currentDefault)
        {
            var membership             = new SimpleMembershipProvider(previousProvider: currentDefault);
            NameValueCollection config = new NameValueCollection();

            membership.Initialize(name, config);
            return(membership);
        }
Example #16
0
        /// <summary>
        /// Add a user to the data storage.
        /// </summary>
        /// <param name="user">The user to add.</param>
        public void Add(User user)
        {
            // Encrypt password before saving to database
            user.Password = SimpleMembershipProvider.EncryptPassword(user.Password);

            db.Users.Add(user);

            db.SaveChanges();
        }
        private static SimpleMembershipProvider CreateDefaultSimpleMembershipProvider(string name, MembershipProvider currentDefault)
        {
            MembershipProvider       previousProvider = currentDefault;
            SimpleMembershipProvider provider         = new SimpleMembershipProvider(previousProvider);
            NameValueCollection      config           = new NameValueCollection();

            provider.Initialize(name, config);
            return(provider);
        }
Example #18
0
            public SimpleMembershipInitializer()
            {
                Database.SetInitializer <UsersContext>(null);

                try
                {
                    using (var context = new UsersContext())
                    {
                        if (!context.Database.Exists())
                        {
                            // Создание базы данных SimpleMembership без применения миграции Entity Framework
                            ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                        }
                    }
                    // Настройка  ASP.NET Simple Membership
                    // 1 параметр - имя строки подключения к базе данных.
                    // 2 параметр - таблица, которая содержит информацию о пользователях
                    // 3 параметр - имя колонки в таблице, которая отвечает за хранение логина
                    // 4 параметр - autoCreateTables автоматическое создание таблиц если они не существуют в базе
                    WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);

                    SimpleRoleProvider       roles      = (SimpleRoleProvider)Roles.Provider;
                    SimpleMembershipProvider membership = (SimpleMembershipProvider)Membership.Provider;

                    // Проверка наличия роли Moderator
                    if (!roles.RoleExists("Moderator"))
                    {
                        roles.CreateRole("Moderator");
                    }
                    // Проверка наличия роли Admin
                    if (!roles.RoleExists("Admin"))
                    {
                        roles.CreateRole("Admin");
                    }
                    if (membership.GetUser("OverLord56_1", false) == null)
                    {
                        membership.CreateUserAndAccount("OverLord56_1", "89Zxcv");          // создание пользователя
                        roles.AddUsersToRoles(new[] { "OverLord56_1" }, new[] { "Admin" }); // установка роли для пользователя
                    }

                    // Поиск пользователя с логином admin
                    if (membership.GetUser("admin", false) == null)
                    {
                        membership.CreateUserAndAccount("admin", "qwe123");          // создание пользователя
                        roles.AddUsersToRoles(new[] { "admin" }, new[] { "Admin" }); // установка роли для пользователя
                    }
                    if (membership.GetUser("user1", false) == null)
                    {
                        membership.CreateUserAndAccount("user1", "qwe123");
                        roles.AddUsersToRoles(new[] { "user1" }, new[] { "Moderator" });
                    }
                }
                catch (Exception ex)
                {
                    throw new InvalidOperationException("The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588", ex);
                }
            }
            public SimpleMembershipInitializer()
            {
                Database.SetInitializer <UsersContext>(null);

                try
                {
                    using (var context = new UsersContext())
                    {
                        if (!context.Database.Exists())
                        {
                            // Создание базы данных SimpleMembership без схемы миграции Entity Framework
                            ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                        }
                    }

                    //   WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);



                    SimpleRoleProvider       roles      = (SimpleRoleProvider)Roles.Provider;
                    SimpleMembershipProvider membership = (SimpleMembershipProvider)Membership.Provider;



                    // Проверка наличия роли Moderator
                    if (!roles.RoleExists("Moderator"))
                    {
                        roles.CreateRole("Moderator");
                    }
                    // Проверка наличия роли Admin
                    if (!roles.RoleExists("Admin"))
                    {
                        roles.CreateRole("Admin");
                    }
                    if (!roles.RoleExists("User"))
                    {
                        roles.CreateRole("User");
                    }

                    // Поиск пользователя с логином admin
                    if (membership.GetUser("admin", false) == null)
                    {
                        membership.CreateUserAndAccount("admin", "qwe123");          // создание пользователя
                        roles.AddUsersToRoles(new[] { "admin" }, new[] { "Admin" }); // установка роли для пользователя
                    }
                    if (membership.GetUser("user1", false) == null)
                    {
                        membership.CreateUserAndAccount("user1", "qwe123");
                        roles.AddUsersToRoles(new[] { "user1" }, new[] { "Moderator" });
                    }
                }
                catch (Exception ex)
                {
                    throw new InvalidOperationException("Не удалось инициализировать базу данных ASP.NET Simple Membership. Чтобы получить дополнительные сведения, перейдите по адресу: http://go.microsoft.com/fwlink/?LinkId=256588", ex);
                }
            }
Example #20
0
        protected override void Seed(PortalContext context)
        {
            WebSecurity.InitializeDatabaseConnection("PortalContext",
                                                     "UserProfile", "UserId", "UserName", autoCreateTables: true);
            roles      = (SimpleRoleProvider)Roles.Provider;
            membership = (SimpleMembershipProvider)Membership.Provider;

            if (!roles.RoleExists("Admin"))
            {
                roles.CreateRole("Admin");
            }
            if (!roles.RoleExists("Member"))
            {
                roles.CreateRole("Member");
            }
            if (!roles.RoleExists("RefundVisualizator"))
            {
                roles.CreateRole("RefundVisualizator");
            }
            if (!roles.RoleExists("RefundAdministrator"))
            {
                roles.CreateRole("RefundAdministrator");
            }
            if (!roles.RoleExists("Manager"))
            {
                roles.CreateRole("Manager");
            }
            if (!roles.RoleExists("Freelancer"))
            {
                roles.CreateRole("Freelancer");
            }

            if (membership.GetUser("admin", false) == null)
            {
                membership.CreateUserAndAccount("admin", "pesca160064");
            }
            if (!roles.GetRolesForUser("admin").Contains("Admin"))
            {
                roles.AddUsersToRoles(new[] { "admin" }, new[] { "Admin" });
            }

            var currentCpf = "38287346851";

            CheckUser(currentCpf, "Bruno Tachinardi Andrade Silva", "*****@*****.**");
            CheckRefund(currentCpf);
            CheckRefundAdministrator(currentCpf);
            CheckManager(currentCpf, "BRUNO");
            CheckFreelancer(currentCpf, "BRUNO", 8, 1200, 128, 50, FreelancerType.EDUCATOR);

            currentCpf = "17858466801";
            CheckUser(currentCpf, "Pedro de Almeida Pereira", "*****@*****.**");
            CheckRefund(currentCpf);
            CheckFreelancer(currentCpf, "BRUNO", 8, 1200, 128, 50, FreelancerType.EDUCATOR);
        }
        public void GenerateTokenHtmlEncodesValues()
        {
            // Arrange
            var generator      = new Mock <RandomNumberGenerator>(MockBehavior.Strict);
            var generatedBytes = Encoding.Default.GetBytes("|aÿx§#½oÿ↨îA8Eµ");

            generator.Setup(g => g.GetBytes(It.IsAny <byte[]>())).Callback((byte[] array) => Array.Copy(generatedBytes, array, generatedBytes.Length));

            // Act
            var result = SimpleMembershipProvider.GenerateToken(generator.Object);

            // Assert
            Assert.Equal("fGH/eKcjvW//P+5BOEW1", Convert.ToBase64String(generatedBytes));
            Assert.Equal("fGH_eKcjvW__P-5BOEW1AA2", result);
        }
        private List <int> GetUserIdsFromNames(IDatabase db, string[] usernames)
        {
            List <int> userIds = new List <int>(usernames.Length);

            foreach (string username in usernames)
            {
                int id = SimpleMembershipProvider.GetUserId(db, SafeUserTableName, SafeUserNameColumn, SafeUserIdColumn, CasingBehavior, username);
                if (id == -1)
                {
                    throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, WebDataResources.Security_NoUserFound, username));
                }
                userIds.Add(id);
            }
            return(userIds);
        }
Example #23
0
        public ActionResult Login(LoginModel model, string returnUrl)
        {
            //Витягуємо роль користувача і при LogOut
            SimpleRoleProvider       roles      = (SimpleRoleProvider)Roles.Provider;
            SimpleMembershipProvider membership = (SimpleMembershipProvider)Membership.Provider;


            if (roles.IsUserInRole(model.UserName, "Admin"))
            {
                TempData["_UserRole"] = "Admin";
            }
            else if (roles.IsUserInRole(model.UserName, "Moderator"))
            {
                TempData["_UserRole"] = "Moderator";
            }

            else
            {
                TempData["_UserRole"] = "Prosto";
            }

            // WebSecurity.Login - аутентифицирует пользователя.
            // Если логин и пароль введены правильно - метод возвращает значение true после чего выполняет добавление специальных значений в cookies.
            if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))

            {
                try
                {
                    if (HttpContext.Request.Cookies["num_of_film"].Value == null)
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        return(RedirectToLocal(returnUrl));
                    }
                }
                catch
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }

            // Был введен не правильный логин или пароль
            ModelState.AddModelError("", "The user name or password provided is incorrect.");
            return(View(model));
        }
        // Inherited from RoleProvider ==> Forwarded to previous provider if this provider hasn't been initialized
        public override string[] GetRolesForUser(string username)
        {
            if (!InitializeCalled)
            {
                return(PreviousProvider.GetRolesForUser(username));
            }
            using (var db = ConnectToDatabase())
            {
                int userId = SimpleMembershipProvider.GetUserId(db, SafeUserTableName, SafeUserNameColumn, SafeUserIdColumn, CasingBehavior, username);
                if (userId == -1)
                {
                    throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, WebDataResources.Security_NoUserFound, username));
                }

                string query = @"SELECT r.RoleName FROM " + UsersInRoleTableName + " u, " + RoleTableName + " r Where (u.UserId = @0 and u.RoleId = r.RoleId) GROUP BY RoleName";
                return(db.Query(query, new object[] { userId }).Select <dynamic, string>(d => (string)d[0]).ToArray());
            }
        }
Example #25
0
        private static void InitializeProviders(DatabaseConnectionInfo connect, string userTableName, string userIdColumn, string userNameColumn, bool autoCreateTables)
        {
            SimpleMembershipProvider simpleMembership = Membership.Provider as SimpleMembershipProvider;

            if (simpleMembership != null)
            {
                InitializeMembershipProvider(simpleMembership, connect, userTableName, userIdColumn, userNameColumn, autoCreateTables);
            }

            SimpleRoleProvider simpleRoles = Roles.Provider as SimpleRoleProvider;

            if (simpleRoles != null)
            {
                InitializeRoleProvider(simpleRoles, connect, userTableName, userIdColumn, userNameColumn, autoCreateTables);
            }

            Initialized = true;
        }
 public ActionResult Index(ViewAccountModel model, int AccountID)
 {
     if (!Roles.GetRolesForUser(WebSecurity.CurrentUserName).Contains("Admin"))
     {
         return(RedirectToAction("Index", "Home"));
     }
     using (var db = new LoginContexts())
     {
         SimpleMembershipProvider provider = new SimpleMembershipProvider();
         UserProfile Profile = db.UserProfiles.Find(AccountID);
         model.UserName = Profile.UserName;
         string[] AccountRoles = Roles.GetRolesForUser(Profile.UserName);
         model.AdminChecked    = AccountRoles.Contains("Admin");
         model.EngineerChecked = AccountRoles.Contains("Engineer");
         model.OperatorChecked = AccountRoles.Contains("Operator");
         return(View(model));
     }
 }
Example #27
0
        private UserProfile CreateUser(string email,
                                       string fullName,
                                       SimpleMembershipProvider membership,
                                       SimpleRoleProvider roles,
                                       SweatyTShirtContext context)
        {
            string userName = Guid.NewGuid().ToString();
            Dictionary <string, object> values = new Dictionary <string, object>();

            values.Add("Email", email);
            values.Add("LastEmailSent", DateTime.Now.AddDays(-365));
            membership.CreateUserAndAccount(userName, AccountRepository.AllUsersPassword, values);
            roles.AddUsersToRoles(new[] { userName }, new[] { AccountRepository.UserRole });
            UserProfile userProfile = context.UserProfiles.FirstOrDefault(o => o.Email == email);

            userProfile.FullName = fullName;
            context.SaveChanges();
            return(userProfile);
        }
        public ActionResult Login(LoginModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                if (Membership.ValidateUser(model.UserName, model.Password))
                {
                    var user = SimpleMembershipProvider.GetUser(model.UserName);

                    loginListener.OnLogin.Invoke(user);

                    var userModel = new UserSerializeModel
                    {
                        Id       = user.Id,
                        Username = user.UserName
                    };

                    var userData = JsonConvert.SerializeObject(userModel);

                    var        ticket         = new FormsAuthenticationTicket(1, userModel.Username, DateTime.Now, DateTime.Now.AddMinutes(60), false, userData);
                    string     ecryptedTicket = FormsAuthentication.Encrypt(ticket);
                    HttpCookie faCookie       = new HttpCookie(FormsAuthentication.FormsCookieName, ecryptedTicket);
                    Response.Cookies.Add(faCookie);

                    Session["user"] = user;

                    if (Url.IsLocalUrl(returnUrl))
                    {
                        return(Redirect(returnUrl));
                    }
                    else
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "The user name or password provided is incorrect.");
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
            public SimpleMembershipInitializer()
            {
                Database.SetInitializer <DatabaseContext>(null);
                using (var context = new DatabaseContext())
                {
                    if (!context.Database.Exists())
                    {
                        // Создание базы данных SimpleMembership без применения миграции Entity Framework
                        ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                    }


                    WebSecurity.InitializeDatabaseConnection("DatabaseContext", "User", "UserId", "Email", true);

                    SimpleRoleProvider       roles      = Roles.Provider as SimpleRoleProvider;
                    SimpleMembershipProvider membership = Membership.Provider as SimpleMembershipProvider;

                    string admin = "Admin";
                    string user  = "******";
                    if (!roles.RoleExists(admin))
                    {
                        roles.CreateRole(admin);
                    }

                    if (!roles.RoleExists(user))
                    {
                        roles.CreateRole(user);
                    }



                    // Поиск пользователя с логином admin
                    if (membership.GetUser("*****@*****.**", false) == null)
                    {
                        IDictionary <string, object> values = new Dictionary <string, object>();
                        values["FirstName"]        = "Maxim";
                        values["LastName"]         = "Bartosh";
                        values["RegistrationDate"] = DateTime.Now;
                        membership.CreateUserAndAccount("*****@*****.**", "qwe123", values);  // создание пользователя
                        roles.AddUsersToRoles(new[] { "*****@*****.**" }, new[] { "Admin" }); // установка роли для пользователя
                    }
                }
            }
        /// <summary>
        /// Refactor user creation and add email id to user profile
        /// </summary>
        /// <param name="roles"></param>
        /// <param name="membership"></param>
        /// <param name="context"></param>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <param name="email"></param>
        /// <param name="role"></param>
        private void CreateAccountAndRole(SimpleRoleProvider roles, SimpleMembershipProvider membership, UsersContext context, string username, string password, string email, string role)
        {
            if (membership.GetUser(username, false) == null)
            {
                membership.CreateUserAndAccount(username, password);
            }

            if (!roles.GetRolesForUser(username).Contains(role))
            {
                roles.AddUsersToRoles(new[] { username }, new[] { role });
            }

            var user = context.UserProfiles.FirstOrDefault(u => u.UserName == username);

            if (user != null && string.IsNullOrEmpty(user.EmailId))
            {
                user.EmailId = email;
            }
        }
 private static SimpleMembershipProvider CreateDefaultSimpleMembershipProvider(string name, MembershipProvider currentDefault)
 {
     var membership = new SimpleMembershipProvider(previousProvider: currentDefault);
     NameValueCollection config = new NameValueCollection();
     membership.Initialize(name, config);
     return membership;
 }
 internal static void InitializeMembershipProvider(SimpleMembershipProvider simpleMembership, DatabaseConnectionInfo connect, string userTableName, string userIdColumn, string userNameColumn, bool createTables)
 {
     if (simpleMembership.InitializeCalled) {
         throw new InvalidOperationException(WebDataResources.Security_InitializeAlreadyCalled);
     }
     simpleMembership.ConnectionInfo = connect;
     simpleMembership.UserIdColumn = userIdColumn;
     simpleMembership.UserNameColumn = userNameColumn;
     simpleMembership.UserTableName = userTableName;
     if (createTables) {
         simpleMembership.CreateTablesIfNeeded();
     } else {
         // We want to validate the user table if we aren't creating them
         simpleMembership.ValidateUserTable();
     }
     simpleMembership.InitializeCalled = true;
 }
        public void SimpleMembershipProvider_CasingBehavior_ValidatesRange(int value, bool isValid)
        {
            // Arrange
            var provider = new SimpleMembershipProvider();

            var message = 
                "The value of argument 'value' (" + value + ") is invalid for Enum type " +
                "'SimpleMembershipProviderCasingBehavior'." + Environment.NewLine +
                "Parameter name: value";
            
            // Act
            Exception exception = null;

            try
            {
                provider.CasingBehavior = (SimpleMembershipProviderCasingBehavior)value;
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            // Assert
            if (isValid)
            {
                Assert.Equal((SimpleMembershipProviderCasingBehavior)value, provider.CasingBehavior);
            }
            else 
            {
                Assert.NotNull(exception);
                Assert.IsAssignableFrom<InvalidEnumArgumentException>(exception);
                Assert.Equal(message, exception.Message);
            }
        }