我正在嘗試使用SessionAuthenticationModule創建令牌並將其寫入Cookie而不是使用舊的FormAuthentication.SetAuthCookie。這樣我也可以向我的委託人添加索賠,並在每次請求時提供索賠。.NET 4.5 SessionAuthenticationModule
它可以在我自己的計算機上正常工作,但是當我部署到服務器時,出現此錯誤: 指定的參數超出了有效值的範圍。參數名:keyExpirationTime
來源:System.IdentityModel 堆棧跟蹤pointsto重載構造之一 - 它似乎已經從我原來的呼叫走過的TokenHandler,然後通過一對夫婦的構造函數來CreateSessionSecurityToken。
My SessionAuthenticationModule是我自己編寫的類,但派生自System.IdentityModel.Services.SessionAuthenticationModule並重寫OnPostAuthenticateRequest。
我發送DateTime.Now和DateTime.Now.AddMinutes(20)爲validFrom和validTo參數(在一個單獨的筆記,這可以是一個配置設置,如果是這樣? - 顯然我可以設置一個AppSetting的分鐘,但大概是有一個安全配置設置的地方?)
我已經搜索了這個錯誤信息,但無法找到任何提及它。
我已經使用FederationAuthentication.SessionAuthenticationModule.CreateSessionSecurityToken也試圖HttpContext.Current.ApplicationInstance.Modules(「SessionAuthenticationModule」) - 我開發的機器上都工作,但在服務器上沒有工作。
服務器有Windows 2008 R2,我有Windows 7專業版。都有IIS 7.5.7600.16385。兩者都使用dotNetFx45_Full_setup.exe v4.5.50709.17929安裝.NET 4.5。 對於測試,我只使用默認網站下的虛擬應用程序,該應用程序使用集成管道的64位應用程序池,並且兩個應用程序池都在AppPoolIdentity下運行。
CreateSessionSecurityToken從sessionauthennticationmodule添加了聲明後執行的頁面調用。
這一定是相當簡單的事情,但我需要幫助搞清楚它是什麼!真的很感謝一些幫助。
感謝 菲爾
謝謝 - 由於某種原因,我沒有收到回覆發送到我的電子郵件,所以只看到了這一點。事實證明,我工作了,但你是對的,UtcNow爲我工作 – user2047485 2013-03-15 11:03:23
說了這麼多,null似乎不適用於ValidTo參數。我是否需要SessionSecurityToken DefaultTokenLifetime的一些配置設置? – user2047485 2013-03-15 11:42:29