[英]I am calling an ASMX web service from javascript and it is preveting my session from timing out
編輯2:
我有一個基於日程表或最終用戶的請求在服務器端運行的后台進程,我需要向所有用戶顯示一個圖像,以使他隨時知道該進程正在運行,或者在該進程運行時取出該圖像完了。
編輯2已完成
我正在通過JavaScript調用位於我的IIS托管網站中的ASMX Web服務,它正在阻止我的會話超時。
為什么從客戶端到Web服務的呼叫阻止了我網站上的會話超時?
有辦法預防嗎?
請告訴我您是否需要進一步說明我的問題或更多細節。
編輯1:
根據下面的答案中@ Rene147提供的信息和鏈接以及一些谷歌搜索,我在我的Web服務端嘗試了以下操作:
[WebMethod(EnableSession=false)]
public string GetSummary()
{
HttpContext.Current.Response.Cookies.Remove(System.Web.Security.FormsAuthentication.FormsCookieName);
return "something";
}
但是事實證明HttpContext.Current.Response.Cookies
始終為空。
有什么提示嗎?
根據我對上一次編輯的理解-如果您想讀取cookie的值,則需要使用Context.Request.Cookies而不是Response 。
[WebMethod(EnableSession = false)]
public string GetSummary()
{
HttpCookie decryptedCookie =
Context.Request.Cookies[FormsAuthentication.FormsCookieName];
return "something";
}
默認情況下,表單身份驗證使用滑動有效期。 這意味着每次您向服務器發出請求時,cookie的過期時間都會重置(有一些警告)。
要禁用“滑動到期”,請在web.config中將“ slidingExpiration”設置為false。 取自滑動過期
<authentication mode="Forms">
<forms loginUrl="member_login.aspx"
name=".ASPXFORMSAUTH"
cookieless="UseCookies"
requireSSL="true"
slidingExpiration="false" />
</authentication>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.