0

我正在尝试通过 WebSecurity 类进行身份验证。

我有一个表单,当用户提交时,这被称为:

@{
    if(IsPost) {
        var username = Request["username"];
        var password = Request["password"];

        WebSecurity.CreateAccount(username, password, false);

        WebSecurity.Login(username, password);

        Response.Redirect("Default.cshtml");
    }

}  

我已经打电话了:

WebSecurity.InitializeDatabaseConnection("Veidibok", "UserProfile", "UserId", "Email", true);

在我的 _appStart.cshtml 文件中。

我从电话中得到这个错误CreateAccount()

[MembershipCreateUserException:提供程序遇到未知错误。]
WebMatrix.WebData.SimpleMembershipProvider.CreateAccount(String userName, String password, Boolean requireConfirmationToken) +1312
WebMatrix.WebData.WebSecurity.CreateAccount(String userName, String password, Boolean requireConfirmationToken) +31
ASP ._Page_Authentication_Register_cshtml.Execute() 在 c:\Users\Notandi\Documents\My Web Sites\VeidiBok\Authentication\Register.cshtml:6
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +207
System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable`1 executors) +68 System.Web.WebPages.WebPage.ExecutePageHierarchy() +156 System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) + 76
System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal(HttpContextBase httpContext)+119

所以有人有什么想法吗?我对此很陌生,只是尝试了 WebMatrix 和 .cshtml

4

2 回答 2

7

好的,在今天的大部分时间里,这个问题让我很头疼。我最终不得不查看 Codeplex 上的源代码以更好地了解正在发生的事情(http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/ae31d2579b9a#src%2fWebMatrix.WebData%2fSimpleMembershipProvider.cs

似乎CreateAccount主要在成员资格表中创建帐户信息,但在此之前,该方法将检查在 Initialize 语句中指定的用户配置文件表中是否存在具有相同用户名的用户WebSecurity.InitializeDatabaseConnection

您可以在CreateUser调用方法之前调用CreateAccount或调用便捷方法CreateUserAndAccount

于 2012-12-03T06:09:32.463 回答
0

解决方案:

您已在数据库工作流程中创建数据库 Veidibok.sdf

然后

在 Demo 根文件夹中创建 web.config 文件并在 connectionString 区域添加以下代码

<connectionStrings>
        <add name="Veidibok" connectionString="Data Source=|DataDirectory|\Veidibok.sdf;" />
    </connectionStrings>
于 2012-06-05T09:02:29.880 回答