代码之家  ›  专栏  ›  技术社区  ›  recursive

在dev machine和server上提供不同结果的sqlMembershipProvider(?)

  •  1
  • recursive  · 技术社区  · 15 年前

    我正在尝试部署一个ASP.NET应用程序。我真的很讨厌。

    无论如何,它的一部分使用表单身份验证进行保护,使用 SqlMembershipProvider . 我已将成员资格提供程序配置为通过web.config使用SQL Server实例。

    我可以通过Visual Studio使用“ASP.NET配置”工具来创建新用户。这似乎很好,并为每个用户在数据库表中创建一个新行。

    然后,我可以使用新创建的凭据登录到受保护的区域。

    这一切在Visual Studio开发调试服务器上都很好地工作。

    当我将它部署到服务器时,问题就出现了。将项目的整个目录树(包括web.config)复制到服务器并尝试登录后,使用 完全相同的证书, 它告诉我“你的登录尝试没有成功。请再试一次。”

    这怎么可能?

    啊,我讨厌部署。

    更新

    我在登录页面中添加了以下代码。当我单击从服务器托管的页面时,可以在服务器上使用凭据登录。

    protected void CreateAdminButton_Click(object sender, EventArgs e)
    {
        System.Web.Security.Membership.DeleteUser("admin");
        System.Web.Security.Membership.CreateUser("admin", "asdfasdf", "admin@email.com");
    }
    

    新的管理记录在同一数据库中可见。管理员凭据 不能 然后用于从dev计算机登录。这给我提供了一种使用服务器和dev box上不同密钥的加密哈希算法。

    1 回复  |  直到 15 年前
        1
  •  2
  •   cdonner    15 年前

    确保在成员资格提供程序中对应用程序名称参数使用“/”,并定义自定义角色提供程序。我几天前刚碰到这个。

    您现在必须手动清理数据库,因为应用程序表中可能有两行,用户表和角色表中可能有重复的行。

    http://cdonner.com/forms-authentication-custom-membership-provider-gotchas.htm .