SORU
19 Mayıs 2009, Salı


Nasıl ASP.NET MVC oturum durumunu devre dışı bırakabilir miyim?

Mümkün olduğunca her zamanki HttpModules çok kaldırma ve devre dışı oturum durumu içeren çok hafif ASP.NET MVC bir site istiyorum. Bunu yapmak için çalıştığınızda, ancak aşağıdaki hatayı alıyorum:

The SessionStateTempDataProvider requires SessionState to be enabled.

Web oturum durumunu devre dışı bıraktım.config:

<sessionState mode="Off" />

ASP.NET MVC TempData için oturum durumu kullanan anlıyorum, ama TempData istiyorum/istemiyorum - ben sadece oturum durumunu devre dışı bırakmak istiyorum. Yardım!

CEVAP
19 Mayıs 2009, Salı


Kendi ControllerFactory ve DummyTempDataProvider yapabilirsin. Şöyle bir şey:

public class NoSessionControllerFactory : DefaultControllerFactory
{
  protected override IController GetControllerInstance(Type controllerType)
  {
    var controller = base.GetControllerInstance(controllerType);
    ((Controller) controller).TempDataProvider = new DummyTempDataProvider();
    return controller;
  }
}


public class DummyTempDataProvider : ITempDataProvider
{
  public IDictionary<string, object> LoadTempData(ControllerContext controllerContext)
  {
    return new Dictionary<string, object>();
  }

  public void SaveTempData(ControllerContext controllerContext, IDictionary<string, object> values)
  {
  }
}

Ve sonra sadece app başlangıçta denetleyicisi fabrika - örneğin bu, genel olarak kaydetmeniz gerekir.asax:

ControllerBuilder.Current.SetControllerFactory(new NoSessionControllerFactory());

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • David Tedeyev

    David Tedeye

    20 AĞUSTOS 2011
  • jocc talking shit

    jocc talking

    6 NİSAN 2007
  • Makeup Lover

    Makeup Lover

    12 HAZİRAN 2011