簡體   English   中英

在ASP.NET MVC應用程序中集成SimpleMembershipProvider

[英]Integrating SimpleMembershipProvider in ASP.NET MVC Application


我很難實現(或集成)ASP.NET SimpleMembershipProvider。 我已經擁有該應用程序先前版本的數據庫表,並且我不想創建新的用戶表,角色等。我想使用現有的表(已經與實體框架進行了映射),因此數據庫可以登錄到將來的應用程序。 這是我所做的:
Web.config文件

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

    <membership defaultProvider="SimpleMembershipProvider">
      <providers>
        <clear />
        <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
      </providers>
    </membership>
    <roleManager enabled="true" />

Global.asax中

WebSecurity.InitializeDatabaseConnection("MyConnectionString", "tblCreds", "IdCred", "Login", false); 
// I put false in the end because I don't want it to create new tables

控制器:

[HttpPost]
public ActionResult Index(UserCreds creds)
        {
            if (ModelState.IsValid)
            {
                UserBLL bll = new UserBLL();
                BaseUser authUser = bll.Authenticate(creds.Login, creds.Password);
                if (authUser != null)
                {
                    WebSecurity.Login(creds.Login, creds.Password);
                    return RedirectToAction("Index", "Home");
                }
            }
            ViewBag.ErrorMessage = "Error";
            return View();
        }

我得到這個異常:

System.Data.SqlClient.SqlException: Invalid object name 'webpages_Membership'

謝謝您的幫助:)

您會看到該異常,因為SimpleMembershipProvider在內部使用這些表名。 不幸的是,它們不是不可替代的(直到最后我使用了它)。

SMP的設計目標是提供具有其自己的表模式的成員資格的即用型工作模型。 您可以配置用戶表名稱並添加更多列,但不能添加所有內容。

有關更多信息,請參見此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM