如何在空MVC 4项目模板中添加ASP.NET成员资格提供程序?

时间:2012-11-10 17:52:43

标签: c# asp.net-mvc asp.net-mvc-4 membership-provider

我是ASP.NET MVC4的新手。我正在创建一个空的MVC4项目模板,并尝试将ASP.NET成员资格提供程序添加到其中,但我不知道如何才能这样做。我正在谷歌搜索,但所有演示都使用互联网应用程序项目模板。

我知道这个问题并不好,但我已经花了两天时间。

请为此目的提供一些建议或教程。

更新

根据Nesim Razon的建议,我将表单身份验证部分从MVC4 Web应用程序(Internet应用程序模板)复制并粘贴到我的空项目中。但现在我得到一个异常要调用此方法,“Membership.Provider”属性必须是“ExtendedMembershipProvider”的实例。

[InitializeSimpleMembership]
public class HomeController : Controller
{

    public ActionResult Index()
    {
        WebSecurity.CreateUserAndAccount("Name", "Password"); // Exception is thrown from there.
        return View();
    }

}

我还在Web.config文件中添加了以下指令:

<add key="enableSimpleMembership" value="true" /> 

4 个答案:

答案 0 :(得分:31)

安装

您需要添加以下Nuget包:

添加对

的引用
  • System.Transactions的

测试

现在为了测试它,将以下内容添加到web.config文件中(在system.web下):

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>

添加以下连接字符串

  <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>

我所做的就是从互联网模板中复制控制器,模型,过滤器和视图,只需修改命名空间等内容,直到你开始运行

这是结果(没有样式)

  

登录前

enter image description here

  

<强>注册

enter image description here

  

已登录

enter image description here

答案 1 :(得分:2)

答案 2 :(得分:0)

如果您想使用Universal Providers而不是MVC 4 Internet模板中包含的Simple Membership,您可以使用 Mobile template 创建一个新的MVC 4项目并复制Account controller + views并更新web.config有正确的connectionString和Forms Auth部分,你应该很高兴。

答案 3 :(得分:0)

ASP NET MVC 5 Web应用程序中的简单成员

https://www.youtube.com/watch?v=BsKcVbsMn6w

项目开发后在项目中实施用户身份验证非常困难。在本视频中,我演示了如何在一开始就未实现身份验证的项目中有效利用Microsoft Simple Membership功能。借助此功能,您可以在项目的任何阶段实施身份验证功能。