Click here to Skip to main content
15,889,852 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Please let me know how to implement SimpleMembership in MVC4 Application. Mine is an empty app and I have included the filter. My project needs the login control to be a partial view. in this case I developed the project and found no tables created at the registered link click.

XML
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=BSQL03;database=Test;User Id=user;password=P@ssw0rd;" />

<profile defaultProvider="DefaultProfileProvider"> 
      <providers> 
        <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, WebMatrix.WebData, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
      </providers> 
    </profile> 
    <membership defaultProvider="DefaultMembershipProvider"> 
      <providers>
        <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />        
      </providers> 
    </membership> 
    <roleManager defaultProvider="DefaultRoleProvider">
      <providers> 
        <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
      </providers> 
    </roleManager> 



My InitializeSimpleMembershipAttribute.cs file is

C#
public sealed class InitializeSimpleMembershipAttribute : ActionFilterAttribute
    {
        private static SimpleMembershipInitializer _initializer;
        private static object _initializerLock = new object();
        private static bool _isInitialized;

        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            // Ensure ASP.NET Simple Membership is initialized only once per app start
            LazyInitializer.EnsureInitialized(ref _initializer, ref _isInitialized, ref _initializerLock);            
        }

        private class SimpleMembershipInitializer
        {
            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();
                        }
                    }

                    if (!WebSecurity.Initialized)
                    { 
                        WebSecurity.InitializeDatabaseConnection("DefaultConnection", "Users", "UserID", "UserName", autoCreateTables: true);
                    }
                }
                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);
                }
            }
        }
    }


The breakpoint hits the WebSecurity.InitializeDatabaseConnection method and executes it but the tables are not generated. Please let me know why???
Posted
Comments
Sergey Alexandrovich Kryukov 30-Jun-15 11:01am    
Empty Web site, by definition, has empty set of members. :-)
—SA

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900