MVC 3 FormsAuthentication部署时不起作用

时间:2011-11-29 12:03:22

标签: asp.net-mvc-3 deployment formsauthentication

我有一个MVC 3应用程序在我的开发环境中工作正常(你 一定听说过之前..)我正在部署它免费托管 服务http://somee.com用于测试,.NET框架设置为 我有一个自定义会员提供者。我可以注册一个用户,因为我可以在数据库中看到它,但是用户永远不会通过身份验证。我总是会在注册后或登录时重定向到LogOn页面。我已经完成了bin部署并将这个dll放在我的bin文件夹中:

•System.Web.Mvc
•Microsoft.Web.Infrastructure
•System.Web.Razor
•System.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 个答案:

答案 0 :(得分:2)

我知道这是一个老问题,但我遇到了类似的问题,并在寻找答案时找到了这个问题。

解决方案是将以下设置添加到您的Web配置文件中。

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

这是必需的原因是一些预应用程序启动代码似乎在默认设置方面存在一些问题。

更好的解释和我找到这个解决方案的地方是here