【问题标题】:How to add ASP.NET Membership Provider in a Empty MVC 4 Project Template?如何在空的 MVC 4 项目模板中添加 ASP.NET 成员资格提供程序?
【发布时间】:2012-11-10 17:52:43
【问题描述】:

我是 ASP.NET MVC4 的新手。我正在创建一个空 MVC4 项目模板并尝试将 ASP.NET Membership Provider 添加到其中,但我不明白我该怎么做。我在 Google 中搜索,但所有演示都使用 Internet 应用程序项目模板。

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

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

更新

根据 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" /> 

【问题讨论】:

  • 为什么不创建一个 MVC4 Web 应用程序(Internet 应用程序模板)而不是将相关的表单身份验证部分复制粘贴到您的空项目中?
  • 您是尝试使用内置提供程序,还是尝试添加自定义提供程序?
  • 我正在尝试使用 MVC4 Web 应用程序(Internet 应用程序模板)中使用的内置提供程序
  • 那就是SimpleMembership,它有一些依赖关系,在空项目中解决起来有点麻烦。为什么不直接创建一个默认 Web 项目并删除您不使用的项目?
  • 你能告诉我依赖是什么吗?

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


【解决方案1】:

安装它

您需要添加以下 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>

我所做的是从 Internet 模板中复制控制器、模型、过滤器和视图,然后只修改命名空间等内容,直到您启动并运行它

这是结果(没有样式)

登录前

注册

登录

【讨论】:

    【解决方案2】:
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      在项目开发后实施用户身份验证确实很困难。在本视频中,我演示了如何在那些从一开始就没有实施身份验证的项目中有效地利用 Microsoft 简单成员资格功能。借助此功能,您可以在项目的任何阶段实现身份验证功能。

      【讨论】:

      • 既然OP指定了MVC 4,这还适用吗?请说明您在此视频中的流程所需的任何差异,或直接解决兼容性问题。
      • 链接失效了!
      猜你喜欢
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多