【问题标题】:Simple Authentication in .net WebPages.net 网页中的简单身份验证
【发布时间】:2012-05-23 01:46:17
【问题描述】:

我正在尝试通过 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(字符串 用户名、字符串密码、布尔型 requireConfirmationToken) +1312
WebMatrix.WebData.WebSecurity.CreateAccount(字符串用户名,字符串 密码,布尔型 requireConfirmationToken) +31
ASP._Page_Authentication_Register_cshtml.Execute() 在 c:\Users\Notandi\Documents\我的网站 站点\VeidiBok\Authentication\Register.cshtml:6
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +207
System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable`1 执行者)+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

【问题讨论】:

    标签: .net authentication razor webmatrix


    【解决方案1】:

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

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

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

    【讨论】:

    • 哇——我以为这应该是“SimpleMembershipProvider”
    【解决方案2】:

    解决方案:

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

    然后

    在Demo根目录下创建web.config文件,在connectionString区域添加如下代码

    <connectionStrings>
            <add name="Veidibok" connectionString="Data Source=|DataDirectory|\Veidibok.sdf;" />
        </connectionStrings>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2023-03-22
      • 2015-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多