原因是WebParts默认绑定了Memebership的验证策略,你可以在Web.Config文件中对其进行修改,方法有两个,但是推荐使用后者:
方法1:
<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="你的数据库连接字符串"/>
</connectionStrings>
原理:Web.Config文件继承自服务器中的machine.config,machine.config中,包含如下配置:
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
用来指定ASP.Net默认指向的服务器,所以在web.config文件中可以移除该配置,并重新追加
方法2:
配置Membership内容
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="连接字符串的Name" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<roleManager enabled="false">
<providers>
<clear />
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
配置中需要根据具体需求改变配置中的值,可以参考system.web.security.membershipprovider类中的属性来配置
Ps.其实还有其它的解决办法,例如自定义Membership提供程序类等,希望对你有帮助