我正在尝试部署asp.net应用程序。我真的好意思。
无论如何,使用SqlMembershipProvider
使用表单身份验证来保护部分内容。我已将成员资格提供程序配置为通过Web.Config使用SQL服务器实例。
我可以通过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");
}
新管理员记录在同一个数据库中可见。然后,管理员凭据无法用于从开发计算机登录。这表明某种键控哈希算法在服务器和开发箱上使用了不同的键。
答案 0 :(得分:2)
确保在成员资格提供程序中使用“/”作为应用程序名称参数,并定义自定义角色提供程序。我几天前就碰到了这个。
您现在必须手动清理数据库,因为您可能在应用程序表中有2行,并且在用户和角色表中有重复。
请参阅http://cdonner.com/forms-authentication-custom-membership-provider-gotchas.htm。