Importanat Note: We can initialize simple Membership in MVC 4 by two ways.
1. By InitializeSimpleMembershipAttribute which is already present on Account Controller.
2. FromGlobal.asax.
Here we are implementing it with second way.
So First of all remove InitializeSimpleMembershipAttribute from Account Controller and follow these steps.
1. Copy this function in Global.asax
void initializeMembership()
{
if (!WebSecurity.Initialized)
WebSecurity.InitializeDatabaseConnection("ConnectionString", "UserProfile", "UserId", "UserName", autoCreateTables: true);
}
2. This function checks the database of given ConnectionString. Create Membership Table if they are not present, and initializes Simple Membership.
3. Call this function in the end of Application_Start event. Like given below.
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
initializeMembership();
}
4. Tables for
membership have now been created in DataBase of given Connection string.
5. You can also add
more fields in UserProfile Table. (Not mentioning here now)
6. Now add
default login url in system.web node in web config if not present.
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
7. Also add
some other settings in system.web in web config. This setting enables SimpleMembershipProvider explicitly.
<!--MVC 4 Simple Membership Settings-->
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear/>
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider,
WebMatrix.WebData"/>
</providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider,
WebMatrix.WebData" />
</providers>
</membership>
<!--End of MVC 4 Simple Membership Settings-->
No comments:
Post a Comment