Asp.net mvc 将[InitializeSimpleMembership]添加到我的MVC控制器要求我生成一个新类。

Asp.net mvc 将[InitializeSimpleMembership]添加到我的MVC控制器要求我生成一个新类。,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我创建了以下控制器和方法来备份我的数据库: namespace WebUx.Controllers { [Authorize(Roles = "Admin")] //[InitializeSimpleMembership] public class BackupController : Controller { public ActionResult BackupDatabase() { var dbPath

我创建了以下控制器和方法来备份我的数据库:

namespace WebUx.Controllers
{
    [Authorize(Roles = "Admin")]
    //[InitializeSimpleMembership]
    public class BackupController : Controller
    {
        public ActionResult BackupDatabase()
        {
            var dbPath = Server.MapPath("~/App_Data/DBBackup.bak");
            using (var db = new TestDBContext())
            {
                var cmd = String.Format("BACKUP DATABASE {0} TO DISK='{1}' WITH FORMAT, MEDIANAME='DbBackups', MEDIADESCRIPTION='Media set for {0} database';"
                    , "TesteDB", dbPath);
                db.Database.ExecuteSqlCommand(cmd);
            }

            return new FilePathResult(dbPath, "application/octet-stream");
        }
    }
}
但是,当我尝试运行此操作时,会收到以下消息:

You must call the "WebSecurity.InitializeDatabaseConnection" method before you call any other method of the "WebSecurity" class. This call should be placed in an _AppStart.cshtml file in the root of your site.
我看到Stackoverflow的一个解决方案是添加:[InitializeSimpleMembership]我添加了这个,但它告诉它找不到类,并要求我生成一个


有人能解释一下这意味着什么吗?

还有一种更简单的方法来解决这个问题
您可以通过在项目根目录中创建“\u AppStart.cshtml”来完成此操作。

内容如下:

@{
    if (!WebSecurity.Initialized)
    {
        WebSecurity.InitializeDatabaseConnection("ConnectionString", "User", "Id",
                                                 "UserName", autoCreateTables: true);
    }
}
“WebSecurity.InitializeDatabaseConnection”的参数为:

  • 连接字符串的名称
  • 包含用户的表的名称
  • 用户表的PrimairyKey
  • 用户名的字段名

  • 您是否在项目的
    Filters
    文件夹中有
    InitializeSimpleMembership.cs
    文件?没有。我会调查的。谢谢您的问题是因为您没有正确配置简单成员身份。执行一些有关
    配置简单成员身份以使用现有数据库的搜索。。。