18

GenericHandler と anonymousIdentification に問題があります。

基本的<anonymousIdentification enabled="true" />に、Web 構成で有効になっている場合、JQuery GET/POST 要求がサーバーに送信されるたびに、その要求は新しいユーザーと新しいユーザー セッションで実行されます。

これを軽減する方法はありますか?現在のユーザーのセッション変数にアクセスする必要があります...本当にイライラします!

4

4 に答える 4

41

ジェネリック ハンドラーは、IReadOnlySessionStateセッション変数にアクセスするためのインターフェイスを実装する必要があります。セッション変数も記述する必要がある場合は、 を実装しIRequiresSessionStateます。

于 2011-02-03T17:58:42.863 に答える
13

System.Web.SessionState.IRequiresSessionStateインターフェイスを実装します。

public class Handler : IHttpHandler, System.Web.SessionState.IRequiresSessionState 
{   
  public void ProcessRequest(HttpContext context)  
  {      
    context.Session["StackOverflow"] = "overflowing";      
    context.Response.Redirect("~/AnotherPage.aspx");      
  }

}
于 2012-09-19T12:23:42.090 に答える
3

これを使用できます:

public class Handler : 
    IHttpHandler, 
    System.Web.SessionState.IReadOnlySessionState
于 2012-06-20T01:32:55.623 に答える
-1

Web ブラウザーで、開発者モードでネットワーク タブを有効にすることをお勧めします。次に、どの Cookie が送信されるか (存在する場合) を AJAX で確認します。

Cookie が表示されない場合は、ブラウザーがセッションを取得していないことを意味します。そのため、(Josh が述べたように) 正しいインターフェイスを継承して Cookie にアクセスする必要があります。(System.Web.SessionState を使用することを忘れないでください)

Cookie を生成するには、セッション オブジェクトの sessionID にアクセスします。

string sesId = context.Session.SessionID;

応答に何かを書き込む前に。

于 2011-11-29T12:00:52.163 に答える