簡體   English   中英

我正在從Javascript調用ASMX Web服務,這使我的會話超時

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM