【发布时间】:2013-04-04 21:29:44
【问题描述】:
我正在我的 ASP.NET MVC4 应用程序中设置成员资格,因此我打开解决方案,然后从那里打开“项目”菜单下的 ASP.NET 配置网站选项。这将打开 ASP.NET 配置工具来创建/修改/删除用户。我发现当我创建用户时,当我在 web.config 中专门设置为指向由我的网络托管公司托管的不同数据库时,它会在本地数据库中创建用户。我把<remove name="LocalSqlServer" /> 删除了 machine.config 中定义的连接。
这是我的应用程序的 web.config 中的连接字符串:
<remove name="LocalSqlServer" />
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=cp.speedwell.arvixe.com; Initial Catalog=*********; User ID=********; Password=********;" />
这是我的网络托管公司的数据库结构。如您所见,我已经创建了所有 aspnet_ 表:
当我单击 ASP.NET 配置选项卡中的“提供程序”时,这是我的提供程序列表:
DefaultMembershipProvider 指向“DefaultConnection”,它是与我的网络托管公司托管的数据库的连接字符串。当我点击“测试”时,它立即返回:
最后,当我点击安全时,这是我收到的消息(请记住,我从连接字符串中删除了 LocalSqlServer):
任何想法我做错了什么?
更新
这是我的 web.config 的 Membership、Profile、RoleManager 和 SessionState 部分:
<profile defaultProvider="DefaultProfileProvider">
<providers>
<add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</profile>
<membership defaultProvider="DefaultMembershipProvider">
<providers>
<add connectionStringName="DefaultConnection" enablePasswordRetrieval="false"
enablePasswordReset="true" requiresQuestionAndAnswer="false"
requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="DefaultRoleProvider">
<providers>
<add connectionStringName="DefaultConnection" applicationName="/"
name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</providers>
</roleManager>
<sessionState mode="InProc" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
</providers>
</sessionState>
【问题讨论】:
-
我建议看看this 线程,看看它是否有帮助。
-
不,这不起作用...我的意思是,删除 LocalSqlServer 并将我的连接字符串重命名为 LocalSqlServer 允许数据库连接成功发生,但现在我不知道我的用户存储在哪里,因为它不在我想要的数据库中。
-
你能发布web.config的membership、roleManager、profile和sessionState(如果有的话)标签吗?
-
我在最后用您要求的信息更新了我的问题,@Win
-
当我单击安全选项卡时,我收到消息“在应用程序配置中找不到连接名称 'LocalSqlServer' 或连接字符串为空。(C:\Windows\Microsoft.NET \Framework\v4.0.30319\Config\machine.config 行 251)"
标签: asp.net-mvc asp.net-mvc-4 asp.net-membership membership