How to add ASP.NET Membership Provider in a Empty MVC 4 Project Template?
I am new in ASP.NET MVC4. I am creating a Empty MVC4 Project Template and trying to add ASP.NET Membership Provider into it but i am not understanding how can I do it. I am searching in Google but all demos are using Internet Application project template.
I know this question is not good but i am already spend two days for it.
Please give a some advice or tutorial for this purpose.
Update
According to Nesim Razon`s advice i copy and paste forms authentication sections to my empty project from a MVC4 Web Application (Internet Application template). But now i get an exception
To call this method, the "Membership.Provider" property must be an instance of "ExtendedMembershipProvider".
[InitializeSimpleMembership]
public class HomeController : Controller
{
public ActionResult Index()
{
WebSecurity.CreateUserAndAccount("Name", "Password"); // Exception is thrown from there.
return View();
}
}
I am also added the following directive in the Web.config file:
<add key="enableSimpleMembership" value="true" />
Solution 1:
Installing it
You need to add the following Nuget Packages:
EntityFramework
-
Microsoft.AspNet.WebPages.OAuth
Note: This package will install all the required dependencies automatically for you. This is a detailed list of all nuget packages installed:
-
Microsoft.AspNet.WebPages.WebData
- Microsoft.AspNet.WebPages.Data
-
DotNetOpenAuth.AspNet
-
DotNetOpenAuth.OpenId.RelyingParty
-
DotNetOpenAuth.OpenId.Core
-
DotNetOpenAuth.Core
- CodeContracts.Unofficial
-
-
-
DotNetOpenAuth.OAuth.Consumer
-
DotNetOpenAuth.OAuth.Core
-
DotNetOpenAuth.Core
- CodeContracts.Unofficial
-
-
-
-
Add a reference to
- System.Transactions
Testing it
Now in order to test it, add the following to the web.config file (Under system.web
):
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
Add the following connection string
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-UnitTestQueries.UI-20121105001038;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-UnitTestQueries.UI-20121105001038.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>
And what I did was to copy the controllers, models, filters and views from the Internet template and just modify things like the namespace and so on until you get it up and running
This is the result (without styles)
Before login
Registering
Logged IN
Solution 2:
Check out SimpleMembership, Membership Providers, Universal Providers and the new ASP.NET 4.5 Web Forms and ASP.NET MVC 4 templates to get an info about what you need to set SimpleMembership inside empty template.
You my also want to check out very nice posts from Scott Allen:
Perils of the MVC4 AccountController
Build Your Own Membership System For ASP.NET MVC - Part I
and
Build Your Own Membership System For ASP.NET MVC - Part II