我正在以编程方式创建新用户(稍后将添加自定义配置文件)并正在使用Win2K8 VM:
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">
答案 0 :(得分:1)
System.Data.SqlClient.SqlException:用户'IIS APPPOOL \ MYAPP'登录失败。
这表示您的应用程序池标识是虚拟帐户'IIS APPPOOL \ MYAPP'。
您需要为此标识创建一个SQL Server登录名,并将其添加为具有成员资格数据库相应权限的用户。
通过为“此身份”创建SQL Server登录信息,不确定您的意思......
一种方法是使用SQL Server Management Studio。将“对象资源管理器”连接到SQL Server实例,单击“安全/登录”右侧,选择“新建登录”,然后使用Windows身份验证添加登录名IIS APPPOOL \ MYAPP。
然后将此登录信息映射到成员资格数据库中的用户。
答案 1 :(得分:1)
您当前的连接字符串是:
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="LocalSqlServer"
connectionString="Initial Catalog=MYS;Data Source=WIN2K8;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />
</connectionStrings>
这里的错误是你说的:连接到我的sql server数据库并使用App Pool身份作为'account'来验证我的sql server db。
IIS上的所有网站都在“帐户”下运行。在这种情况下,此帐户似乎称为MyApp
。
所以修复你需要有一个连接字符串,说明:不要在这台IIS机器上设置任何“身份”,但是等等!请改用此硬编码用户名/密码。
现在检查一下:
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="LocalSqlServer"
connectionString="Initial Catalog=MYS;Data Source=WIN2K8;uid=username;password=pass;"
providerName="System.Data.SqlClient" />
</connectionStrings>
注意:
Integrated Security=SSPI;
uid=username;
password=pass;
只需将值username
和pass
替换为您用于登录sql server数据库的用户名/密码。
需要帮助了解您可以在单个连接字符串中定义哪些选项/关键字? Check this ConnectionStrings site as a reference
专业提示:而不是<remove name="whatever/>
..尝试使用<clear/>
例如
<connectionStrings>
<clear/>
<add name="LocalSqlServer" connectionString="Initial Catalog=MYS;Data Source=WIN2K8;uid=username;password=pass;" providerName="System.Data.SqlClient" />
</connectionStrings>
GL!
答案 2 :(得分:0)
检查你的连接字符串应该如下所示:
Server=.\SQLEXPRESS;Database=MyDatabase;Integrated Security=SSPI;
关于修改后的错误:
将 enableEventValidation 设置为false,将 viewStateEncryptionMode 设置为Never,如下所示:
<pages enableeventvalidation="false" viewstateencryptionmode="Never">
答案 3 :(得分:0)
通过填充aspnet_SchemaVersions表,我可以通过以下链接解决连接问题:
然后我能够在本地连接:
<remove name="LocalSqlServer" />
<add name="LocalSqlServer"
connectionString="Initial Catalog=MYS;Data Source=WIN2K8;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />