모든 요청에 대해 세션 시간 초과가 재설정됩니까?
세션 변수 확인 여부와 관계없이 모든 요청에 대해 세션 타임아웃이 재설정됩니까?아니면 적어도 하나의 세션 변수를 사용해야 합니까?
Ajax 요청으로 인해 세션 재설정 시간 초과가 발생합니까?맘에 들다Update Panel
,jQuery ajax
,...
감사해요.
편집 1)
요?HTTP Get
세션 시간 초과를 재설정하는 원인??
세션 변수 확인 여부와 관계없이 모든 요청에 대해 세션 타임아웃이 재설정됩니까?
Session
서버 사이드 코드를 계속 호출하면 만료되지 않습니다.session
서버에 대한 각 요청에 대해 타임아웃이 재설정됩니다.동일한 웹 사이트에 대한 후속 요청 시 브라우저는ASP.NET_SessionId Cookie
서버측 모듈이 세션 값(사용자 정보 등)에 액세스하는 데 사용할 수 있습니다.
---------------------------------------------------------------------------------
How to detect the Session TimeOut
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
질문 - 2 - Ajax 요청으로 인해 세션이 재설정됩니까?업데이트 패널, jQuery ajax,...
질문 - 3 - HTTP Get으로 인해 세션이 재설정됩니까?
Session
사용자가 요청 사이에 너무 오래 기다린 경우 만료됩니다.Session
계속 호출하면 만료되지 않습니다.server side
.session
서버에 대한 각 요청에서 시간 초과가 재설정됩니다.
Web.Config
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="true" timeout="1" />
네, 포함되었습니다.당신이 실제로 그것을 사용하는지 여부는 중요하지 않습니다.Session
그렇지 않으면.
그러나 ajax 호출만 사용하는 경우 몇 가지 문제가 발생할 수 있습니다.
(비록 제가 직접 접해보지는 못했지만, 여기에 설명이 있습니다.)
세션 변수 확인 여부와 관계없이 모든 요청에 대해 세션 타임아웃이 재설정됩니까?아니면 적어도 하나의 세션 변수를 사용해야 합니까?
세션 변수가 설정될 때까지 모든 포스트백에 대해 새 세션 ID가 생성됩니다.
Ajax 요청으로 인해 세션 재설정 시간 초과가 발생합니까?업데이트 패널, jQuery ajax,...
기본적으로 쿠키에 저장된 세션 ID는 모든 AJAX 및 비 AJAX 요청에 대해 전송됩니다.따라서 서버는 세션 사용자가 활성 상태임을 인식합니다.내 약속을 꼭 믿지는 마세요.fiddler 또는 f12 tool을 ie 안에 사용합니다.모든 AJAX GET/POST 요청과 함께 쿠키가 발송되는 것을 볼 수 있습니다.
이것은 여러 가지 요소에 따라 다르므로 아래와 같이 테스트를 진행하는 것을 권장합니다.사용자 환경에서 정확한 상황이 작동하는지 확인하는 데는 5분도 걸리지 않습니다.이것은 내가 이것을 테스트하기 위해 사용했던 내 코드입니다. 나는 아이디어를 테스트하기 위해 텔릭 컨트롤을 사용하지만 당신이 원하는 정확한 답을 얻기 위해 .get을 추가했습니다. asx 페이지가 가지고 있습니다.
<telerik:RadScriptManager ID="RadScriptManager1" Runat="server">
</telerik:RadScriptManager>
<telerik:RadAjaxManager ID="ram" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="btnFake">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="lblAnswer" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<script src="Scripts/jquery-1.4.1-vsdoc.js"></script>
<script>
$(document).ready(function () {
setTimeout(function () { document.location.href = "default.aspx?next"; }, 61000);
setInterval(function () {
var divForTimer = $("#divTime");
var secs = parseInt(divForTimer.html());
secs = secs + 1;
$("#divTime").html(secs.toString());
}, 1000);
});
function getPage() {
$.get("test.aspx", function(result) {
$("#btnFake").val("Got it");
});
}
</script>
<asp:Label ID="lblAnswer" runat="server"></asp:Label>
<Asp:button ID="btnTest" runat="server" Text="Renew" onclick="btnTest_Click" />
<input type="button" ID="btnAjaxget" onclick ="getPage()" value="Ajax get" />
<asp:Button ID="btnFake" runat="server" Text ="Fake it"
onclick="btnFake_Click"/>
<div id="divTime">1</div>
.cs 페이지는.
protected void Page_Load(object sender, EventArgs e)
{
Session.Timeout = 1;
if (EMSG.CommonFunctions.GetSession("test").Length > 0)
{
this.lblAnswer.Text = "Session=" + EMSG.CommonFunctions.GetSession("test");
}
else
{
this.lblAnswer.Text = "No session";
}
}
protected void btnTest_Click(object sender, EventArgs e)
{
Session["test"] = "variable set";
this.lblAnswer.Text = Session["test"].ToString();
}
protected void btnFake_Click(object sender, EventArgs e)
{
lblAnswer.Text = "Ajax called.";
}
---위의 내용을 상황에 맞게 정리할 수 있습니다.하지만 생각은 간단합니다.페이지를 로드합니다."Renew(갱신)" 버튼을 클릭하면 세션이 설정됩니다.61초만 기다리면 페이지가 새로 고쳐지고 세션 변수가 사라집니다.다시 시도해 보십시오. 하지만 이번에는 몇 초 후에 다른 두 버튼 중 하나를 클릭하면 세션 변수가 ajax 호출에서 그대로 유지됨을 알 수 있습니다.이 상황에서 ajax 호출은 세션 변수를 새로 고칩니다.
언급URL : https://stackoverflow.com/questions/10370110/does-session-timeout-reset-on-every-request
'source' 카테고리의 다른 글
워드프레스의 빈 광고를 보여주는 Google AdSense (0) | 2023.10.29 |
---|---|
휴대용 비교 및 스왑(원자 작동) C/C++ 라이브러리? (0) | 2023.10.24 |
내 진행률 표시줄의 Excel vba 사용자 양식에서 닫기 [X] 버튼 숨기기 (0) | 2023.10.24 |
java.sql 푸는 방법SQL 비일시적 연결예외:결과 집합을 읽을 수 없습니다.연결 재설정? (0) | 2023.10.24 |
내부 기능에서 외부 기능을 종료할 수 있는 방법이 있습니까? (0) | 2023.10.24 |