2013-03-13 117 views
2

我是Nancy和.NET框架的新手。在這裏我正處於恐慌狀態。如何創建會話並在會話中設置UserBean

我寫了我自己的Bootstrapper在項目中啓用CookieBasedSessions。這裏是我必須執行的任務。

  1. 一旦用戶登錄創建會話並在會話中設置User
  2. 然後對每個請求驗證用戶在session

    class Bootstrapper : DefaultNancyBootstrapper 
    { 
    protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) 
    { 
        base.ApplicationStartup(container, pipelines); 
        CookieBasedSessions.Enable(pipelines); 
    } 
    
    } 
    

這是我的控制器。

 Post["/myapp/login"] = parameters => 
     { 
      var model = new User(); 
      model.UserName = this.Request.Form.userName; 


      model = manager.GetUser(model.UserName); 
      if (!string.IsNullOrEmpty(model.UserName) && model.isAdmin()) 
      { 
       // var user = Request.Session["user"]; 
       if (Request.Session["key"] != null) // Here i get the ERROR 
        Request.Session["key"] = model; 

       return Response.AsRedirect(HOME_URL); 
      } 
      else 
       return Response.AsRedirect(LOGIN_URL); 
     }; 

當我執行此代碼時我得到{"Session support is not enabled."}錯誤。

任何幫助表示讚賞。

回答

2

它沒有使用你的自定義引導程序 - 公開課,它會把它拿起來。

+0

感謝您的回覆,它解決了問題。你能告訴我如何獲取/設置會話中的值。 – amicngh 2013-03-13 10:21:02

+1

只需使用Session [「key」],主asp.net演示項目中就有一個示例路線https://github.com/NancyFx/Nancy/blob/master/src/Nancy.Demo.Hosting.Aspnet/MainModule。 cs#L129 – 2013-03-13 10:31:39

+0

鏈接現在是https://github.com/NancyFx/Nancy/blob/master/samples/Nancy.Demo.Hosting.Aspnet/MainModule.cs如果有人關心 – Fons 2017-05-23 08:39:20