2013-04-02 102 views
3

在我的ASP.NET MVC 3應用程序動作,我有執行控制器動作每一個時間週期的定時器。這樣,我的會話永不超時......創建不影響會話超時

我不希望這種行動,每次執行時間重置會話計時器。我試圖通過這樣的鏈接

http://blogs.msdn.com/b/rickandy/archive/2011/05/02/securing-your-asp-net-mvc-3-application.aspx

但這種方式創建一個自定義屬性[AllowAnonymous]要做到這一點,任何用戶都能夠無需登錄訪問此行動,這不是我想要的。

任何想法?

回答

1

您可以禁用在你的web.config會議滑動過期:

<forms slidingExpiration="false" loginUrl="~/Account/LogOn" timeout="2800" /> 

這樣的窗體身份驗證cookie將不再更新和票據只會在固定時間內是有效的。

如果你想禁用僅適用於特定的請求滑動過期你可以看看的following answer。這有點不好意思,因爲票據更新代碼深埋在FormsAuthenticationModule中。

+0

確定但是這會影響所有操作,我只想爲特定操作執行此操作 – kbaccouche

+0

這非常困難,因爲票據更新深埋在FormsAuthenticationModule代碼中。你可以看看下面的帖子:http://stackoverflow.com/a/4722128/29407 –

+0

@DarinDimitrov因此,這將通過設置'slidingExpiration'爲false,並手動更新該cookie(使用你提供的鏈接)的工作除了針對特定操作的請求之外的所有請求? – ken2k

0

如何創建,通過一個子域訪問不同的應用程序?我認爲這不僅是最簡單也是最乾淨的方式。

如果你使用任何其他方式和其他開發者需要稍後支持的話,這樣做的成本可能會更高取決於解決方案的複雜性,如果他們需要以某種方式改變它。