我遇到了与先前解决的问题相同的问题,但是这个解决方案并没有帮助我。
我已在上面发布了上一个问题和答案:
Forms Authentication works on dev server but not production server (same SQL db)
问题:
我之前从未遇到过这个问题, 我完全失去了。
我有一个SQL Server 2008数据库 ASP.NET Forms身份验证,配置文件 和角色创建和功能 开发工作站。我可以 使用没有创建的用户登录 问题
我备份了数据库 开发计算机并将其恢复 生产服务器。我xcopy了 DLL和ASP.NET文件到服务器。 我做了必要的改变 web.config,更改SQL 连接字符串指向 生产服务器数据库和上传 它
我确保生成一台机器 关键,两者都是一样的 开发web.config和 生产web.config。
然而,当我尝试登录时 生产服务器,同一个用户 我能够成功登录 开发计算机,失败了 生产服务器。
还有其他内容 数据库,生成的模式 FluentNHibernate。这个内容是可以的 要在两者上成功查询 开发和生产服务器。
这是令人难以置信的,我相信我已经 验证了一切,但很明显 仍然没有工作,我必须有 错过了什么。请问,有什么想法吗?
答案:
我忘记在成员资格提供程序元素下的web.config中设置> applicationName属性,因此我遇到了类似症状的问题。
用户与特定应用程序相关联。由于我没有设置applicationName,因此它默认为应用程序路径(类似于“/ MyApplication”)。当它移动到生产时,路径发生了变化(例如“/ WebSiteFolder / SomeSubFolder” / MyApplication“),因此应用程序名称默认为新的生产路径,并且无法对在>开发中设置的原始用户帐户进行>关联。
您的问题可能与我的问题相同吗?
我已经在我的web.config中使用了这个,但仍然遇到了问题。有什么想法吗?
<membership defaultProvider="AspNetSqlMembershipProvider">
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/"/>
</providers>
</membership>
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
</profile>
<roleManager enabled="false">
<providers>
<clear/>
<add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
任何帮助都非常适合。
答案 0 :(得分:1)
1)尝试添加defaultProvider设置:
<membership defaultProvider="AspNetSqlMembershipProvider">
<providers>
2)你有
applicationName="/"/
查看应用程序表,使用的名称是什么?
3)
<add name="AspNetSqlMembershipProvider">
在“AspNetSqlMembershipProvider”之后不应该有一个小括号
答案 1 :(得分:0)
您当前的行是
<add name="AspNetSqlMembershipProvider">type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, >Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/"/>
但不应该是
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/"/>