Asp.net SqlMembershipProvider在开发人员计算机和服务器上提供不同的结果(?)
我正在尝试部署asp.net应用程序。我真的很烂 无论如何,它的一部分是通过使用Asp.net SqlMembershipProvider在开发人员计算机和服务器上提供不同的结果(?),asp.net,iis,forms-authentication,Asp.net,Iis,Forms Authentication,我正在尝试部署asp.net应用程序。我真的很烂 无论如何,它的一部分是通过使用SqlMembershipProvider的表单身份验证来保护的。我已通过Web.Config将成员资格提供程序配置为使用SQL server实例 我可以通过Visual Studio使用“ASP.NET配置”工具创建新用户。这似乎很好,并在数据库表中为每个用户创建一个新行 然后,我可以使用新创建的凭据登录到受保护区域 这些都在VisualStudio开发调试服务器上运行良好 当我将其部署到服务器时,问题就出现了。将
SqlMembershipProvider
的表单身份验证来保护的。我已通过Web.Config将成员资格提供程序配置为使用SQL server实例
我可以通过Visual Studio使用“ASP.NET配置”工具创建新用户。这似乎很好,并在数据库表中为每个用户创建一个新行
然后,我可以使用新创建的凭据登录到受保护区域
这些都在VisualStudio开发调试服务器上运行良好
当我将其部署到服务器时,问题就出现了。将项目的整个目录树(包括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 box上的不同密钥的某种密钥哈希算法。确保在成员资格提供程序中使用“/”作为应用程序名称参数,并定义自定义角色提供程序。我几天前才碰到这个
现在必须手动清理数据库,因为应用程序表中可能有2行,而用户表和角色表中可能有重复
请参阅。您是否也上载了数据库?或者在本地配置帐户时是否远程连接到服务器数据库?确保服务器上有一个包含用户的数据库。。。