MVC 3 FormsAuthentication Не работает при развертывании - PullRequest
0 голосов
/ 29 ноября 2011

У меня есть приложение MVC 3, которое отлично работает в моей среде разработки (вы, наверное, слышали об этом раньше). Я развертываю его на бесплатном хостинге http://somee.com для тестирования, установлена ​​платформа .NET4. У меня есть пользовательский поставщик членства.Я могу зарегистрировать пользователя, как я вижу его в базе данных, но пользователь никогда не проходит аутентификацию. Меня всегда перенаправляют на страницу входа в систему, либо после регистрации, либо при входе в систему.Я выполнил развертывание корзины и у меня в папке bin находятся следующие файлы:

• System.Web.Mvc
• Microsoft.Web.Infrastructure
• System.Web.Razor
• Система.Web.WebPages • System.Web.WebPages.Razor
• System.Web.Helpers

В конфигурации: ...

   <add key="loginUrl" value="~/Account/Logon" />
  </appSettings>
....
    <membership defaultProvider="ServiceMembershipProvider">
      <providers>
        <clear/>
        <add name="ServiceMembershipProvider"
             type="Infrastruture.ServiceMembershipProvider, Infrastruture" />
      </providers>
    </membership>
  <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" />
    </authentication>

Контроллеры:

  [HttpPost]
        public ActionResult Register(FormCollection registration)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var registrationViewModel = MapFormToRegistrationViewModel(registration);
                    companyManager.RegisterCompany(registrationViewModel);
                    FormsAuthentication.SetAuthCookie(registrationViewModel.SystemUserViewModel.Email, false);
                    return RedirectToAction("Welcome", "Home");
                }
                else
                {
                    ModelState.AddModelError("", "LogId already taken");
                }
            }
            catch(Exception ex)
            {
                               return View("Register", new RegistrationViewModel(dataReferenceService));
            }

            return View("Register", new RegistrationViewModel(dataReferenceService));
        }
    /* /Home/Welcome */
    [Authorize]
    public ActionResult Welcome()
    { return View(); }

У нас заканчиваются идеи ...

1 Ответ

2 голосов
/ 20 февраля 2012

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

Решение состоит в том, чтобы добавить следующий параметр в файл веб-конфигурации.

<appSettings>
<add key="enableSimpleMembership" value="false"/>
</appSettings>

Причина, по которой это требуется, заключается в том, что некоторый код запуска приложения, похоже, имеет некоторые проблемы с настройками по умолчанию.

Лучшее объяснение и место, где я нашел это решение: здесь

...