2017-09-11 27 views
0

私の要件 - Web APIを使用しているので、データベースからすべてのデータを取得できます。私はすべてのデータを取得するためにこのAPIを消費する.netウェブサイトを持っています。今私が欲しいのは、私が "API"でセッションを管理したい私のウェブサイトにログインしているときです。Web APIセッション管理

私はweb apiでのセッションは良いアプローチではありませんが、私はこれを行う必要があることを知っています。

私は郵便配達員からの私のすべてのリクエストを送信している場合(つまり、1つのメソッドを呼び出してそのセッションを取得することでセッション変数を設定している場合)、Web APIでセッション管理を既に実装しています(here) 2番目のメソッドを呼び出すことによって変数)。しかし、私はasp.netのウェブサイトからjQueryを使って同じことをしているとき、セッション変数を保存していません(気づいたことは、リクエストごとに毎回異なるセッションIDを取得していることです)。

セッション内の変数を保存するコード私は私のgoal..Yourの意見は私の日救う達成するために行う必要がありますどのようなセッションに格納された変数を取得する

$.ajax({ 
       url: 'http://localhost:63726/api/Login/Login', 
       type: "GET", 
       dataType: "JSON", 
       success: function (data) { 
        alert("success"); 
       }, 
       error: function (data) { 
        alert("error"); 
       } 
      }); 

コード

$.ajax({ 
       url: 'http://localhost:63726/api/SessionCheck/LoginName', 
       type: "GET", 
       dataType: "JSON", 
       success: function (data) { 
        alert("success"); 
       }, 
       error: function (data) { 
        alert("error"); 
       } 
      }); 

..

+0

セッションを使用することはwebapiではあまり適していません。トークンベースの認証を使用します。 –

+0

私はあなたに完全に同意しますが、私のクライアントはこれだけを望みますので、私はこれを行う必要があります。 –

答えて

0

これまでにWeb Api Session storageをお読みください。

セッションからデータを取得するには、javascript sessionStorage(代わりにajax)を使用します。

+0

私はすでにそれを読んでいます。問題はjqueryコードではありません。問題は、Web APIでWeb APIを呼び出すときに、別のセッションIDが見つかりました。私があなたを得られないなら、詳細を教えてください。 –

+0

まず、Web Apiはデフォルトではステートレスです。ブラウザセッションストレージにデータを保存する(または必要とする)場合は、js経由でクライアント側でデータを解決する必要があります。サーバー側で解決したら、この[WebApiセッション](https://www.strathweb.com/2012/11/adding-session-support-to-asp-net-web-api/)をお読みください。 – Manfice

+0

私は既にその記事を読んでいますが、それはうまくいきます。私の問題はapiを呼び出している間、同じセッションIDを維持することです。実際には、ポストマンとブラウザからの直接要求でうまく動作しています。 –