.net WebPages中的简单身份验证

hal*_*izh 0 .net authentication webmatrix razor

我试图通过WebSecurity类进行身份验证.

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

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

        WebSecurity.CreateAccount(username, password, false);

        WebSecurity.Login(username, password);

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

}  
Run Code Online (Sandbox Code Playgroud)

我已经致电:

WebSecurity.InitializeDatabaseConnection("Veidibok", "UserProfile", "UserId", "Email", true);
Run Code Online (Sandbox Code Playgroud)

在我的_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 c:\ Users\Notandi\Documents\My Web Sites\VeidiBok\Authentication\Register.cshtml中的
._Page_Authentication_Register_cshtml.Execute():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

Cor*_*nce 7

好吧,这个问题对我今天的好处很痛苦.我最终不得不查看Codeplex上的源代码,以便更好地了解正在发生的事情(http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/ae31d2579b9a#src%2fWebMatrix.WebData%2fSimpleMembershipProvider.cs)

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

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