Das Upgrade auf die ASP.NET 4.5 / MVC 4-Formularauthentifizierung schlägt fehl

Ich habe gerade ein VS 2012 zusammen mit ASP.NET 4.5 und MVC 4.0 heruntergeladen und mit einer Beispiel-App die Reifen gekickt und festgestellt, dass die Formularauthentifizierung, die perfekt mit ASP.NET 4.0 / MVC 3 funktioniert, nicht mehr mit dem zu funktionieren scheint neueste Erscheinung.

Wenn ich die Anmeldefunktion im Aktionscontroller aufrufe, schlägt der Aufruf von WebSecurity.Login fehl:

public ActionResult Login(LoginModel model, string returnUrl)
{
    if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
    {
        return RedirectToLocal(returnUrl);
    }

    // If we got this far, something failed, redisplay form
    ModelState.AddModelError("", "The user name or password provided is incorrect.");
    return View(model);
}

Ich habe diesen Code durch den entsprechenden Code in meiner VS 2010-Quelle ersetzt, und dies schlägt ebenfalls fehl (mithilfe der jetzt veralteten FormsAuthentication.Authenticate-Funktion).

Meine Frage ist: Hat jemand eine MVC3-zu-MVC4-App portiert und eine Problemumgehung für dieses Problem gefunden? Ich benutze IIS Express, also denke ich, dass dies irgendwie ein Problem verursacht, aber wenn Sie irgendwelche Ideen haben, würde ich es begrüßen.

Ich habe meine Konfiguration von meiner aktiven asp.net 4 / MVC3-App wie folgt kopiert, aber kein Glück (hier sind die relevanten Teile):

  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=tcp:sql2k1201.dbprovider.net;Initial Catalog=SQL2012_db;User ID=SQL2012_db_user;Password=dbpassword;" providerName="System.Data.SqlClient" />
  </connectionStrings>

  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />

    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="2880"/>
    </authentication>

    <membership>
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="DefaultConnection"
           enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
           maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
           applicationName="/" />
      </providers>
    </membership>

    <profile>
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="DefaultConnection" applicationName="/" />
      </providers>
    </profile>

    <roleManager enabled="true">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="DefaultConnection" applicationName="/" />
      </providers>
    </roleManager>

Antworten auf die Frage(3)

Ihre Antwort auf die Frage