是的,您需要修改web.config中的连接字符串。
在web.config中查找,您可能会在<membership>
元素中看到类似于以下内容:
<membership>
<providers>
<clear />
<add connectionStringName="LocalSqlServer"
name="AspNetSqlMembershipProvider"
[...]
type="System.Web.Security.SqlMembershipProvider,
System.Web,
Version=2.0.0.0,
Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</membership>
connectionStringName
属性告诉框架在
<connectionStrings>
元素中查找名为“LocalSqlServer”的连接字符串——这可能在您的web.config中尚未定义,因为它可以从.Net Framework的核心配置目录Machine.Config中继承。
您应该为连接字符串选择一个新名称,并更新membership、roles和profile(如果您正在使用它们)提供程序以使用新名称。
然后,在
<connectionStrings>
元素中添加以下内容:
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="MyConnectionString"
connectionString="Data Source=[ServerName];Initial Catalog=[DatabaseName];Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
根据您的系统调整值-我建议在web.config中使用集成安全性,而不是存储数据库登录和密码,但因人而异(例如,在我的共享主机上,我无法使用集成安全性,因此必须提供用户/密码详细信息)。
网站管理工具也将遵守这些连接字符串。
编辑以响应评论
您是否成功登录?或者创建了一个用户?我只是想排除您是否配置和运行了连接字符串?
您是否已经配置并启用了Roles Provider?您是否更新了其中的“connectionStringName”属性?
请注意,与以前一样,machine.config为您指定了默认的角色提供程序,试图指向本地SqlExpress实例-这可能是连接错误的原因。
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="MyConnectionString"
[...]
type="System.Web.Security.SqlRoleProvider,
System.Web,
Version=2.0.0.0,
Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
如果您想了解有关省略的属性的更多详细信息,我建议查看文档:
一旦您配置好了这些内容,它应该可以正常工作。
如果您无法创建用户/登录,请检查以下内容:
- 连接字符串——确保名称匹配,确保与您的服务器实例相匹配(不总是仅仅是计算机名称,可能是类似于“MachineName\SqlServer”的东西)。
- 如果您使用集成安全性,则需要确保在数据库中为站点运行的帐户分配了适当的权限:您应该发现您的数据库中有许多以开头的角色,为了确保您可以创建用户(如果您有注册表单则需要),您应该将该帐户添加到角色中(每个角色对应会员资格、个性化、配置文件和角色)。