Я создал пользовательский поставщик членства и роли, чтобы использовать аутентификацию и авторизацию, встроенные в ASP.NET MVC 4. Все было гладко во время разработки моего приложения, пока я не попытался развернуть его в тестовую среду.Почему мой пользовательский поставщик членства и роли работает локально, но после развертывания он не работает?
Запуск приложения в режиме отладки из Visual Studio работает отлично. Тем не менее, я затем использую однострочное развертывание Visual Studio для загрузки моего приложения в экземпляр IIS, запущенного на моей машине разработки. Я могу загрузить приложение в своем браузере, но аутентификация больше не работает. Используя Fiddler, я вижу, что cookie отправляется обратно, но я не могу получить доступ к частям сайта, которые ограничены с помощью атрибутов [Authorize].
Ниже приведен соответствующий фрагмент из моего web.config.
<membership defaultProvider="PonosMembershipProvider">
<providers>
<clear />
<add name="PonosMembershipProvider" type="Ponos.Identity.PonosMembershipProvider" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/Ponos" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="DefaultRoleProvider">
<providers>
<clear />
<add name="DefaultRoleProvider" type="Ponos.Identity.PonosRoleProvider" connectionStringName="DefaultConnection" applicationName="/Ponos" />
</providers>
</roleManager>
Кроме того, я поставил имя приложения в обоих настраиваемого поставщика с логикой следующим образом:
public override string ApplicationName
{
get
{
return "Ponos";
}
set
{
throw new NotImplementedException();
}
}
Кроме того, после присоединения к запущенному экземпляру IIS, я вижу, что информация, введенная в форму проходит проверку, но не предоставляется доступ к страницам с ограниченным разрешенным доступом.
Кроме того, база данных, используемая для развертывания, заполняется теми же значениями, что и база данных разработки.
Почему провайдеры не работают после развертывания, когда они работают нормально в среде отладки?
Вы создали роли на сервере развертывания? –
Я сделал, заполненные таблицы развертывания соответствуют таблицам разработки. – XBigTK13X
Я предполагаю, что никакие прокси не находятся в миксе? Мы видели, что файлы cookie auth зависят от определенных прокси-конфигураций. –