Почему мой поставщик членов и ролей работает на местном уровне, но терпит неудачу после развертывания?
-
25-10-2019 - |
Вопрос
Я создал пользовательский поставщик членов и ролей для использования аутентификации и авторизации, встроенной в ASP.NET MVC 4. Все шло гладко во время разработки моего приложения, пока я не попытался развернуть его в тестовой среде.
Запуск приложения в режиме отладки от Visual Studio работает совершенно нормально. Однако затем я использую развертывание One Click Visual Studio, чтобы загрузить свое приложение в экземпляр IIS, работающего на моей машине разработки. Я могу загрузить приложение в своем браузере, но аутентификация больше не работает. Используя Fiddler, я вижу, что файл cookie отправляется обратно, но я не могу получить доступ к участкам сайта, которые ограничены с помощью атрибутов [авторизации].
Ниже приведен соответствующий фрагмент из моего 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 я вижу, что информация, введенная в форму, передает проверку, но что доступа не предоставляется страницам, которые ограничивают уполномоченный доступ.
Кроме того, база данных по использованию для развертывания заполняется теми же значениями, что и база данных разработки.
Почему поставщики не работают после развертывания, когда они хорошо функционируют в среде отладки?
Решение 2
Эта проблема появилась только тогда, когда мой развернутый сервер был доступен непосредственно по IP. Когда я добавил отображение ввода хоста в домен в IP и впоследствии установил тот же домен в моем авторитетном файле Auth, проблема была решена.
Я не уверен, почему я не мог получить доступ к файлу cookie, если домен был IP -адресом, но это решило проблему.
Другие советы
«Я вижу, что информация, введенная в форму, передает валидацию, но что доступа не предоставляется страницам, которые ограничивают авторизованный доступ».
Похоже, проблема с разрешениями!