我有一个aspnetservicesdb数据库,用于存储用户配置文件。我已经部署了一个新的asp.net mvc应用程序。该应用程序使用appdata目录中的本地sqlexpress数据库进行成员资格/配置文件。
我不希望应用程序使用sqlexpress数据库。
我已从web.config和AuthConfig.RegisterAuth()中删除了连接字符串;来自global.asax
到目前为止,这已经奏效了。我能够成功地在控制器中使用User.Identity.Name。但是,当我尝试在视图中使用User.IsInRole时,我得到了一个sql server not found错误,因为本地sqlexpress db不存在。
如何告诉应用程序使用我现有的数据库并停止查找sqlexpress db?
编辑 - 这是连接字符串
<!--<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=removed;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|removed" providerName="System.Data.SqlClient"/>-->
<add name="ApplicationServices" connectionString="Data Source=removed;Initial Catalog=aspservicesdb;UID=removed;PWD=removed" providerName="System.Data.SqlClient" />
编辑 - 这是来自网络配置的其他会员资格部分
<authentication mode="Forms">
<forms loginUrl="~/login.aspx" timeout="2880" />
</authentication>
<membership userIsOnlineTimeWindow="480">
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="12" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
答案 0 :(得分:0)
您没有告诉asp.net使用会员提供商。这应该是这样的:
<membership defaultProvider="AspNetSqlMembershipProvider" userIsOnlineTimeWindow="480">
而且,由于你以其他方式获得会员资格,这告诉我你可能正在使用SimpleMembership,这意味着你需要从应用程序中删除SimpleMembership代码(包括用户数据上下文和其他属性)
答案 1 :(得分:0)
事实证明我没有将这些部分添加到网络配置中......
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</profile>
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="ApplicationServices" applicationName="/"
name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
问题似乎已得到解决。