Аутентификация с помощью форм работает на сервере разработки, но не на рабочем сервере (тот же SQL db) - PullRequest
1 голос
/ 03 июня 2010

У меня та же проблема, что и у ранее решенного вопроса, однако это решение мне не помогло.

Я разместил предыдущий вопрос и ответ ниже:

Аутентификация с помощью форм работает на сервере разработки, но не на производственном сервере (тот же БД SQL)

Вопрос:

У меня никогда не было этой проблемы раньше, Я в полной растерянности.

У меня есть база данных SQL Server 2008 с ASP.NET Forms Аутентификация, профили и роли созданы и функционируют на рабочая станция разработки. Я могу войти, используя созданных пользователей без проблема.

Я создаю резервную копию базы данных на разработка компьютера и восстановление его на производственный сервер. Я копирую DLL и ASP.NET файлы на сервер. Я делаю необходимые изменения в web.config, изменение SQL Строки подключения, чтобы указать на база данных производственного сервера и загрузка это.

Я убедился, что сгенерировал машину ключ, и он одинаков на обоих разработка web.config и производство web.config.

И все же, когда я пытаюсь войти на рабочий сервер, тот же пользователь, который Я могу успешно войти на компьютер разработки, не работает на производственный сервер.

В база данных, схема, сгенерированная FluentNHibernate. Этот контент может быть успешным на обоих серверы разработки и производства.

Это ошеломляет, я верю, что я все проверил, но очевидно это все еще не работает, и я должен иметь что-то пропустил. Пожалуйста, есть идеи?

Ответ:

Однажды я столкнулся с проблемой с похожими симптомами, забыв установить атрибут> applicationName в web.config в элементе поставщиков членства.

Пользователи связаны с определенным приложением. Поскольку я не устанавливал 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>

Любая помощь очень ценится.

Ответы [ 2 ]

1 голос
/ 03 июня 2010

1) Попробуйте добавить настройку defaultProvider:

<membership defaultProvider="AspNetSqlMembershipProvider">
      <providers>

2) У вас есть

applicationName="/"/

Посмотрите в таблице приложения, какое имя используется?

3)

<add name="AspNetSqlMembershipProvider"> 

не должно иметь закрывающую скобку после «AspNetSqlMembershipProvider»

0 голосов
/ 03 июня 2010

ваша текущая строка

<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="/"/>
...