我正在以编程方式创建一个新用户(稍后将添加自定义配置文件),并且正在使用Win2K8虚拟机:
MembershipUser newUser =
Membership.CreateUser(userNameTxt.Text, passwordTxt.Text, emailTxt.Text);
Roles.AddUserToRole(userNameTxt.Text.Trim(), "Member");
更新日期:
连接字符串:
<remove name="LocalSqlServer" />
<add name="LocalSqlServer"
connectionString="Initial Catalog=MYS;Data Source=WIN2K8;uid=MYS;password=xxxxxx;"
providerName="System.Data.SqlClient" />
获取以下错误:
System.Data.SqlClient.SqlException:用户“IIS APPPOOL\MYAPP”登录失败。
<membership>
<providers>
<remove name="DefaultMembershipProvider"/>
<add
name="DefaultMembershipProvider"
type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="LocalSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="false"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<roleManager enabled="true">
4条答案
按热度按时间soat7uwm1#
您当前的连接字符串是:
这里的错误在于你说:* 连接到我的SQL Server数据库,并使用应用程序池标识作为“帐户”来验证我的SQL Server数据库。*
IIS上的所有网站都在一个“帐户”下运行。在本例中,此帐户似乎名为
MyApp
。因此,修复需要有一个连接字符串,该字符串表示:不要使用IIS机器上设置的任何“身份”,等等。但是!使用这个硬编码的用户名/密码代替。
现在就来看看这个:
请注意:
1.我去掉了这个论证:
Integrated Security=SSPI;
1.我补充了一个论点:
uid=username;
1.我补充了一个论点:
password=pass;
只需将值
username
和pass
替换为用于登录SQL Server数据库的用户名/密码。需要帮助了解在单个连接字符串中可以定义哪些选项/关键字?Check this ConnectionStrings site as a reference。
专业提示:不要使用
<remove name="whatever/>
..尝试使用<clear/>
例如
ego6inou2#
System.Data.SqlClient.SqlException:用户“IIS APPPOOL\MYAPP”登录失败。
这表明您的应用程序池标识是虚拟帐户“IIS APPPOOL\MYAPP”。
您需要为此标识创建SQL Server登录名,并将其作为具有适当权限的用户添加到成员资格数据库。
不确定为“此身份”创建SQL Server登录名是什么意思...
一种方法是使用SQL Server Management Studio。将“对象资源管理器”连接到SQL Server示例,右键单击“安全/登录”,选择“新建登录”,然后添加具有Windows身份验证的登录名IIS APPPOOL\MYAPP。
然后将此登录名Map到成员资格数据库中的用户。
tv6aics13#
检查连接字符串,它应该如下所示:
关于您修改的错误:
将启用事件验证设置为假,将视图状态加密模式设置为从不,如下所示:
c90pui9n4#
我能够通过填充aspnet_SchemaVersions表来解决连接问题,请参见以下链接:
ASP.NET Membership Error
然后,我能够本地连接,因此: