2012-02-13 39 views
0

我的網站不斷強迫我回到請求之間的登錄頁面(身份驗證問題)。身份驗證不會持續用戶會話

我的本地網站工作得很好,是相同的確切代碼。沒有身份驗證問題......

我已經沖刷過的網頁和撕裂我的頭髮,整天在這個問題上嘗試不同的事物的建議等

可有人請給我解釋一下什麼是繼續和我如何糾正它?

[HttpPost] 
     public ActionResult LogOn(LogOnModel model, string returnUrl) 
     { 
      if (ModelState.IsValid) 
      { 
       if (Membership.ValidateUser(model.UserName, model.Password)) 
       { 
        FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); 

        Session["Email"] = model.Email; 

        if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") 
         && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) 
        { 
         return Redirect(returnUrl); 
        } 
        else 
        { 
         return RedirectToAction("Index", "Home"); 
        } 
       } 
       else 
       { 
        ModelState.AddModelError("", YeagerTechResources.Resources.AcctUserNamePswdInCorrect); 
       } 
      } 

      // If we got this far, something failed, redisplay form 
      return View(model); 
} 

下面是我登錄到生產站點後立即可用的cookie的下圖。請注意,沒有列出cookie。

的Cookie信息 - http://yeagertech.com/

現在,如果你看同樣的方式執行相同的代碼爲我開發網站,您將看到以下。這讓我瘋狂,並浪費了一整天的時間。我會用任何幫助apprecaite任何人!

的Cookie信息 - http://localhost:4514/

NAME

代理

VALUE

http://localhost:62613/proxy/0/

DOMAIN

本地主機

PATH

/

EXPIRES

2012/2/12下午8點21分16秒

注意,幾經多個請求,它可以追溯到到登錄頁---只在生產現場而不在本地現場。

似乎生產網站上的cookie在需要返回登錄頁面之前沒有足夠長的保質期。

我基本上希望cookie至少持續用戶會話。

我能做些什麼來解決這個問題?

再次感謝....

我需要配置在這個網站,我做到了,並得到了下面的錯誤有關IIS設置:

「無法使用SQL Server,因爲ASP.NET版本2.0會話狀態未安裝在SQL服務器上,請安裝ASP.NET會話狀態SQL Server版本2。0或更高版本「

收到此錯誤後,我發現需要在SQL Server上啓用會話狀態,因此我嘗試運行InstallSqlState.SQL文件(位於本地PC上的Microsoft.Net版本文件夾中) 。

試圖運行該腳本後,它失敗(與下面的錯誤),因爲沒有「MSDB」數據庫SystemDatabases文件夾中的我的託管數據庫服務器上。

「在數據庫中創建否認DATABASE權限'主'。如果作業不存在,從msdb.dbo.sp_delete_job錯誤的預期。消息229,級別14,狀態5,過程sp_delete_job,1號線執行權限被拒絕的對象sp_delete_job'數據庫「MSDB」,架構「DBO」。消息911,級別16,狀態1,行10數據庫 'ASPState的' 不存在。請確保名稱輸入正確。「

因此,除非我的託管數據庫(我擁有的是master和tempdb)上有一個msdb數據庫,否則我無法在我的sql服務器上設置會話狀態。

我想知道如何從這裏着手。

順便說一句,我覺得不太可能,即使它被啓用,這將解決這個問題。我的情況不適合任何的3個要點您最初概述。

這是一個小數據庫,在它幾乎沒有任何記錄。我只是用我的網測試它在我開始向它添加記錄之前,確保它工作正常。也沒有時間間隔。

我去了幾個精美的網頁,然後突然間,回到登錄頁面...

如果我的本地機器工作正常,它defintley有我需要的東西做因爲我正在使用您的服務器。

我希望得到任何幫助....

回答

0

,我也面臨着這種類型的問題,但不是在MVC ....問題是FormsAuthentication票證上的託管服務器在1分鐘內到期..... ..

的問題可能是你的工作進程回收不斷,這將導致票證過期或在自動結束會話....你可以做的是請向您的託管服務提供商和您的專用空間限制或虛擬內存限制您的應用程序池 或者,你可以問他們這是用來加密和解密的票證可能會解決這個問題的機器的關鍵要素

我也在不斷與我的託管服務提供商聯繫,但他們的產品開發團隊花費太多時間來解決問題

+0

將會話從InProc更改爲SQLServer服務器爲我工作。 – sagesky36 2012-03-07 22:28:02