Asp.net
在 asp.net 網頁中嘗試 WebSecurity.CreateAccount 時遇到錯誤“提供程序遇到未知錯誤”
我是 asp.net 的新手。我正在嘗試使用 WebMatrix 創建一個簡單的登錄和註冊網頁。但是當我嘗試創建帳戶時出現以下錯誤:
The Provider encountered an unknown error. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Web.Security.MembershipCreateUserException: The Provider encountered an unknown error. Source Error: Line 32: db.Execute("INSERT INTO UserData (Email,Name) VALUES (@0,@1)", email, username); Line 33: Line 34: WebSecurity.CreateAccount(email,password); Line 35: Response.Redirect("Homepage.cshtml"); Line 36: } Source File: c:\Users\admin\Documents\My Web Sites\Login\Register.cshtml Line: 34 Stack Trace: [MembershipCreateUserException: The Provider encountered an unknown error.] WebMatrix.WebData.SimpleMembershipProvider.CreateAccount(String userName, String password, Boolean requireConfirmationToken) +1312 WebMatrix.WebData.WebSecurity.CreateAccount(String userName, String password, Boolean requireConfirmationToken) +31 ASP._Page_Register_cshtml.Execute() in c:\Users\admin\Documents\My Web Sites\Login\Register.cshtml:34 System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +207 System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable`1 executors) +68 System.Web.WebPages.WebPage.ExecutePageHierarchy() +156 System.Web.WebPages.StartPage.RunPage() +19 System.Web.WebPages.StartPage.ExecutePageHierarchy() +65 System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +76 System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal(HttpContextBase httpContext) +119 Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272任何幫助表示讚賞。謝謝。
務必:
- 首先創建使用者記錄
- 呼叫 WebMatrix 以創建使用者帳戶。
以下是我的程式碼,它解決了您遇到的相同問題:
public ActionResult SignUp(SignUpModel model) { if (ModelState.IsValid) { using (MorphometryContext context = new MorphometryContext()) { User user = new User { Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, Username = model.UserName }; context.Users.Add(user); context.SaveChanges(); } // Attempt to register the user try { WebSecurity.CreateAccount(model.UserName, model.Password); } catch (MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); return View(); } WebSecurity.Login(model.UserName, model.Password); return RedirectToAction("Index", "Projects"); }此外,您不想 Respoonse.Redirect 到 .cshtml 文件。相反,您應該返回一個 RedirectToAction 並傳入 Action 和 Controller 名稱。
我只是遇到了同樣的問題……我正在使用
WebSecurity.CreateAccount(model.UserName, model.Password);及以上產生的問題..
然後我嘗試了:
WebSecurity.CreateAccountAndUser(model.UserName, model.Password);並發現我缺少使用者表 (UserProfile) 的其他必填欄位。以下為我工作:
WebSecurity.CreateAccountAndUser(model.UserName, model.Password, new {RequiredColumn1 = Value1, RequiredColumn2 = Value 2, ...... });文章很舊,但希望這可以幫助其他人..