public void ConfirmAccountWithUserAndTokenTest()
        {
            var token = MySqlWebSecurity.CreateUserAndAccount(_userName, _pass, null, true);

            Assert.True(MySqlWebSecurity.UserExists(_userName));
            Assert.True(MySqlWebSecurity.ConfirmAccount(_userName, token));
        }
 public void PasswordTest()
 {
     MySqlWebSecurity.CreateUserAndAccount(_userName, _pass);
     Assert.Equal(DateTime.MinValue, MySqlWebSecurity.GetLastPasswordFailureDate(_userName));
     Assert.NotEqual(DateTime.MinValue, MySqlWebSecurity.GetPasswordChangedDate(_userName));
     Assert.Equal(0, MySqlWebSecurity.GetPasswordFailuresSinceLastSuccess(_userName));
 }
Ejemplo n.º 3
0
 public void CreatedDateTest()
 {
     execSQL(@"delete from userprofile;
         delete from webpages_membership;");
     MySqlWebSecurity.CreateUserAndAccount(_userName, _pass);
     Assert.AreNotEqual(DateTime.MinValue, MySqlWebSecurity.GetCreateDate(_userName));
 }
        //We need to mock this test because there is no data on Membership object, there is no user available because login doesn't add it to the context
        //[Fact]
        public void ChangePasswordTest()
        {
            try
            {
                string newPass = "******";
                MySqlWebSecurity.CreateUserAndAccount(_userName, _pass);
                Assert.True(MySqlWebSecurity.UserExists(_userName));

                //We need to mock the login because in that method there is a call to "FormsAuthentication.SetAuthCookie" which causes an "Object reference not set to an instance of an object" exception, because the test doesn't run on web application context

                Assert.True(_simpleProvider.ValidateUser(_userName, _pass));
                //Assert.True(MySqlWebSecurity.Login(_userName, _pass));

                Assert.True(MySqlWebSecurity.ChangePassword(_userName, _pass, newPass));

                Assert.True(_simpleProvider.ValidateUser(_userName, newPass));
                //Assert.True(MySqlWebSecurity.Login(_userName, newPass));
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                CleanUser();
            }
        }
Ejemplo n.º 5
0
        public ActionResult Disassociate(string provider, string providerUserId)
        {
            string          ownerAccount = OAuthWebSecurity.GetUserName(provider, providerUserId);
            ManageMessageId?message      = null;

            // Only disassociate the account if the currently logged in user is the owner
            if (ownerAccount == User.Identity.Name)
            {
                // Use a transaction to prevent the user from deleting their last login credential
                using (var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions
                {
                    IsolationLevel = IsolationLevel.Serializable
                }))
                {
                    bool hasLocalAccount    = OAuthWebSecurity.HasLocalAccount(MySqlWebSecurity.GetUserId(User.Identity.Name));
                    int  externalLoginCount = OAuthWebSecurity.GetAccountsFromUserName(User.Identity.Name).Count;

                    if (hasLocalAccount == true || externalLoginCount > 1)
                    {
                        OAuthWebSecurity.DeleteAccount(provider, providerUserId);
                        scope.Complete();
                        message = ManageMessageId.RemoveLoginSuccess;
                    }
                    else if (hasLocalAccount == false && externalLoginCount == 1)
                    {
                        message = ManageMessageId.RequestOneExternalLogin;
                    }
                }
            }

            return(RedirectToAction("Manage", new
            {
                Message = message
            }));
        }
        public void ConfirmAccountWithoutTokenTest()
        {
            var token = "falsetoken";

            MySqlWebSecurity.CreateUserAndAccount(_userName, _pass);
            Assert.True(MySqlWebSecurity.UserExists(_userName));
            Assert.False(MySqlWebSecurity.ConfirmAccount(token));
        }
Ejemplo n.º 7
0
 public bool IsUserExist(string username)
 {
     if (string.IsNullOrWhiteSpace(username))
     {
         throw new ArgumentNullException("username");
     }
     return(MySqlWebSecurity.UserExists(username));
 }
Ejemplo n.º 8
0
        protected override void AddSystemData(WarehouseContext context)
        {
            const string playerRoleName        = "Standartuser";
            const string administratorRoleName = "Administrator";

            MySqlWebSecurity.InitializeDatabaseConnection(DbConfigManager.ConnectionName);
            System.Web.Security.Roles.CreateRole(administratorRoleName);
            System.Web.Security.Roles.CreateRole(playerRoleName);
        }
Ejemplo n.º 9
0
        public ActionResult Login(LoginModel model, string returnUrl)
        {
            if (ModelState.IsValid && MySqlWebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
            {
                return(RedirectToLocal(returnUrl));
            }

            // If we got this far, something failed, redisplay form
            ModelState.AddModelError("", "The user name or password provided is incorrect.");
            return(View(model));
        }
Ejemplo n.º 10
0
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                // Attempt to register the user
                try
                {
                    IDictionary <string, object> properties = new Dictionary <string, object>();

                    // NOTICE: To use this property columns. Add "MySql.Data.Extension" project partial "UserProfile" class and add property columns.
                    // by KIM-KIWON\xyz37(Kim Ki Won) in Thursday, April 18, 2013 5:02 PM
                    //properties.Add("Email", model.Email);
                    //properties.Add("Facebook", model.Facebook);
                    //properties.Add("Age", model.Age);
                    //properties.Add("Rate", model.Rate);

                    using (TransactionScope scope = new TransactionScope())
                    {
                        MySqlWebSecurity.CreateUserAndAccount(model.UserName, model.Password, properties);
                        MySqlWebSecurity.Login(model.UserName, model.Password);

                        var userId = MySqlWebSecurity.GetUserId(model.UserName);

                        using (var db = SimpleMembershipTestDbContext.CreateContext())
                        {
                            db.UserProperties.Add(new UserProperty
                            {
                                UserId    = userId,
                                UserName  = model.UserName,
                                Age       = model.Age,
                                Email     = model.Email,
                                Facebook  = model.Facebook,
                                Rate      = model.Rate,
                                LastName  = model.LastName,
                                FirstName = model.FirstName,
                            });
                            db.SaveChanges();
                        }

                        scope.Complete();
                    }


                    return(RedirectToAction("Index", "Home"));
                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public void PasswordResetTokenTest()
        {
            var token  = MySqlWebSecurity.CreateUserAndAccount(_userName, _pass, null, true);
            int userID = MySqlWebSecurity.GetUserId(_userName);

            Assert.True(MySqlWebSecurity.ConfirmAccount(token));
            var newToken = MySqlWebSecurity.GeneratePasswordResetToken(_userName, 1440);

            Assert.NotEqual(null, newToken);
            Assert.Equal(MySqlWebSecurity.GetUserIdFromPasswordResetToken(newToken), userID);
        }
Ejemplo n.º 12
0
        public ActionResult Index(SignUpViewModel viewModel)
        {
            if (!ModelState.IsValid || !viewModel.IsAgreementChecked)
            {
                return(View("Index", viewModel));
            }

            _signUpService.CreateUser(viewModel);
            MySqlWebSecurity.Login(viewModel.UserName, viewModel.Password);

            return(RedirectToAction(NameHelper.Home.Index, NameHelper.Home.Controller));
        }
Ejemplo n.º 13
0
        public ActionResult Login(LoginViewModel model)
        {
            model.Login = model.Login.Trim();

            if (MySqlWebSecurity.Login(model.Login, model.Password, model.RememberMe))
            {
                return(RedirectToAction(NameHelper.Catalog.ViewCatalog, NameHelper.Catalog.Controller));
            }

            ModelState.AddModelError(ModelStateInvalidUserDataKey, Resources.Resources.ModelStateInvalidUserDataKey);

            return(View(NameHelper.Home.Index, model));
        }
        public void CreateUserAndAccountTest()
        {
            MySqlWebSecurity.CreateUserAndAccount(_userName, _pass);
            Assert.True(MySqlWebSecurity.UserExists(_userName));
            var user = MySqlHelper.ExecuteDataRow(ConnectionString, string.Format("select * from {0} where {1} = '{2}'", _userTable, _userNameColumn, _userName));

            Assert.NotNull(user);
            Assert.Equal(_userName, user[_userNameColumn]);

            Assert.True(_simpleProvider.ValidateUser(_userName, _pass));
            //We need to mock the login because in that method there is a call to "FormsAuthentication.SetAuthCookie" which causes an "Object reference not set to an instance of an object" exception, because the test doesn't run on web application context
            //Assert.True(MySqlWebSecurity.Login(_userName, _pass));
        }
Ejemplo n.º 15
0
        protected void Application_Start()
        {
            var builder = new ContainerBuilder();

            // Register your MVC controllers.
            builder.RegisterControllers(typeof(MvcApplication).Assembly);

            // OPTIONAL: Register model binders that require DI.
            builder.RegisterModelBinders(Assembly.GetExecutingAssembly());
            builder.RegisterModelBinderProvider();

            // OPTIONAL: Register web abstractions like HttpContextBase.
            builder.RegisterModule <AutofacWebTypesModule>();

            // OPTIONAL: Enable property injection in view pages.
            builder.RegisterSource(new ViewRegistrationSource());

            // OPTIONAL: Enable property injection into action filters.
            builder.RegisterFilterProvider();


            // Register dependencies in filter attributes
            builder.RegisterFilterProvider();

            // Register dependencies in custom views
            builder.RegisterSource(new ViewRegistrationSource());

            // Register our Data dependencies
            builder.RegisterModule(new DataProviderModule());
            builder.RegisterModule(new LogicModule());

            //           builder.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource(
            //t => !(t.IsGenericType && t.GetGenericTypeDefinition() == typeof(Meta<>))));

            var container = builder.Build();

            // Set MVC DI resolver to use our Autofac container
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            // AutoMapper Initialization
            AutoMapperInitializer.InitAutoMapper();

            MySqlWebSecurity.InitializeDatabaseConnection("WarehouseContext");
        }
Ejemplo n.º 16
0
        public ActionResult Index()
        {
            if (User == null || User.Identity == null || string.IsNullOrWhiteSpace(User.Identity.Name) ||
                !MySqlWebSecurity.UserExists(User.Identity.Name))
            {
                return(View());
            }

            if (MySqlWebSecurity.IsAuthenticated)
            {
                return(RedirectToAction(NameHelper.Catalog.ViewCatalog, NameHelper.Catalog.Controller));
            }

            return(View());
        }
 public void CreatedDateTest()
 {
     try
     {
         MySqlWebSecurity.CreateUserAndAccount(_userName, _pass);
         Assert.NotEqual(DateTime.MinValue, MySqlWebSecurity.GetCreateDate(_userName));
     }
     catch (Exception)
     {
         throw;
     }
     finally
     {
         CleanUser();
     }
 }
 public void UserIsConfirmedTest()
 {
     try
     {
         MySqlWebSecurity.CreateUserAndAccount(_userName, _pass, null, true);
         Assert.False(MySqlWebSecurity.IsConfirmed(_userName));
     }
     catch (Exception)
     {
         throw;
     }
     finally
     {
         CleanUser();
     }
 }
 public void UserIsLockedOutTest()
 {
     try
     {
         MySqlWebSecurity.CreateUserAndAccount(_userName, _pass, null, true);
         Assert.False(MySqlWebSecurity.IsAccountLockedOut(_userName, 5, 60));
     }
     catch (Exception)
     {
         throw;
     }
     finally
     {
         CleanUser();
     }
 }
Ejemplo n.º 20
0
        public void CreateUser(SignUpViewModel viewModel)
        {
            var newUser = _mapper.Map <SignUpViewModel, UserProfile>(viewModel);

            var data = new Dictionary <string, object>
            {
                { "FirstName", newUser.FirstName },
                { "LastName", newUser.LastName },
                { "Email", newUser.Email }
            };

            MySqlWebSecurity.CreateUserAndAccount(viewModel.UserName, viewModel.Password, data);

            System.Web.Security.Roles.AddUserToRole(viewModel.UserName,
                                                    viewModel.IsAdmin ? Constants.Roles.Administrator : Constants.Roles.StandartUser);
        }
        public SimpleMembership()
        {
            _simpleProvider     = new MySqlSimpleMembershipProvider();
            _simpleRoleProvider = new MySqlSimpleRoleProvider();

            var _config = new NameValueCollection();

            _config.Add("connectionStringName", "LocalMySqlServer");
            _config.Add("userTableName", "UserProfile");
            _config.Add("userIdColumn", "UserId");
            _config.Add("userNameColumn", "UserName");

            _simpleProvider.Initialize("Test", _config);
            _simpleRoleProvider.Initialize("TestRoleProvider", _config);

            MySqlWebSecurity.InitializeDatabaseConnection(ConnectionString, "MySqlSimpleMembership", _userTable, _userIdColumn, _userNameColumn, true, true);
        }
 public void ConfirmAccountWithUserAndTokenTest()
 {
     try
     {
         var token = MySqlWebSecurity.CreateUserAndAccount(_userName, _pass, null, true);
         Assert.True(MySqlWebSecurity.UserExists(_userName));
         Assert.True(MySqlWebSecurity.ConfirmAccount(_userName, token));
     }
     catch (Exception)
     {
         throw;
     }
     finally
     {
         CleanUser();
     }
 }
 public void ConfirmAccountWithoutTokenTest()
 {
     try
     {
         var token = "falsetoken";
         MySqlWebSecurity.CreateUserAndAccount(_userName, _pass);
         Assert.True(MySqlWebSecurity.UserExists(_userName));
         Assert.False(MySqlWebSecurity.ConfirmAccount(token));
     }
     catch (Exception)
     {
         throw;
     }
     finally
     {
         CleanUser();
     }
 }
 public void PasswordTest()
 {
     try
     {
         MySqlWebSecurity.CreateUserAndAccount(_userName, _pass);
         Assert.Equal(DateTime.MinValue, MySqlWebSecurity.GetLastPasswordFailureDate(_userName));
         Assert.NotEqual(DateTime.MinValue, MySqlWebSecurity.GetPasswordChangedDate(_userName));
         Assert.Equal(0, MySqlWebSecurity.GetPasswordFailuresSinceLastSuccess(_userName));
     }
     catch (Exception)
     {
         throw;
     }
     finally
     {
         CleanUser();
     }
 }
Ejemplo n.º 25
0
            public SimpleMembershipInitializer()
            {
                Database.SetInitializer <SeiRPGManagerContexto>(null);

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

                    MySqlWebSecurity.InitializeDatabaseConnection("SeiRPGManagerCon");

                    const string ADMIN_ROLES = "Administrators";
                    const string ADMIN_USER  = "******";

                    if (System.Web.Security.Roles.RoleExists(ADMIN_ROLES) == false)
                    {
                        System.Web.Security.Roles.CreateRole(ADMIN_ROLES);

                        if (WebSecurity.UserExists(ADMIN_USER) == false)
                        {
                            WebSecurity.CreateUserAndAccount(ADMIN_USER, "password");
                        }

                        if (System.Web.Security.Roles.GetRolesForUser(ADMIN_USER).Contains(ADMIN_ROLES) == false)
                        {
                            System.Web.Security.Roles.AddUserToRole(ADMIN_USER, ADMIN_ROLES);
                        }
                    }
                }
                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);
                }
            }
        private static void Main()
        {
            using (var db = SimpleMembershipTestDbContext.CreateContext())
            {
                var count = db.UserProfiles.Count();

                Console.WriteLine("user count: {0}", count);

                MySqlWebSecurity.InitializeDatabaseConnection("SimpleMembershipTestDbContext");

                int userId = MySqlWebSecurity.GetUserId("admin");

                Console.WriteLine("user ID: {0}", userId);

                db.OAuthMemberships.Add(new OAuthMembership
                {
                    Provider       = "facebook",
                    ProviderUserId = "xyz37",
                    UserId         = userId,
                });

                int ret = db.SaveChanges();
            }
        }
Ejemplo n.º 27
0
        //
        // GET: /Account/Manage

        public ActionResult Manage(ManageMessageId?message)
        {
            ViewBag.StatusMessage =
                message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed."
                                : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
                                : message == ManageMessageId.RemoveLoginSuccess ? "The external login was removed."
                                : message == ManageMessageId.RequestOneExternalLogin ? "You must one external login or local account."
                                : "";
            ViewBag.HasLocalPassword = OAuthWebSecurity.HasLocalAccount(MySqlWebSecurity.GetUserId(User.Identity.Name));
            ViewBag.ReturnUrl        = Url.Action("Manage");
            var model = new ChangePropertyModel
            {
                LocalPasswordModel = new LocalPasswordModel(),
                PropertyModel      = new PropertyModel(),
            };

            using (var db = SimpleMembershipTestDbContext.CreateContext())
            {
                var userProperties = db.UserProperties.SingleOrDefault(x => x.UserName == User.Identity.Name);

                if (userProperties != null)
                {
                    model.PropertyModel = new PropertyModel
                    {
                        Age       = userProperties.Age,
                        Email     = userProperties.Email,
                        Facebook  = userProperties.Facebook,
                        FirstName = userProperties.FirstName,
                        LastName  = userProperties.LastName,
                        Rate      = userProperties.Rate,
                    };
                }
            }

            return(View(model));
        }
 public void UserIsLockedOutTest()
 {
     MySqlWebSecurity.CreateUserAndAccount(_userName, _pass, null, true);
     Assert.False(MySqlWebSecurity.IsAccountLockedOut(_userName, 5, 60));
 }
 public void UserIsConfirmedTest()
 {
     MySqlWebSecurity.CreateUserAndAccount(_userName, _pass, null, true);
     Assert.False(MySqlWebSecurity.IsConfirmed(_userName));
 }
 public void CreatedDateTest()
 {
     MySqlWebSecurity.CreateUserAndAccount(_userName, _pass);
     Assert.NotEqual(DateTime.MinValue, MySqlWebSecurity.GetCreateDate(_userName));
 }