2017-09-11 2 views
0

Meine Anforderungen - Ich habe eine Web-API, die mir alle Daten aus db gibt. Ich habe eine .net Website, die diese API verbraucht, um alle Daten zu erhalten. Nun, was ich will ist, wenn ich meine Website anmelden möchte ich Sitzung in "API" verwalten.Web-API-Session-Management

Ich weiß Sitzung in Web-API ist kein guter Ansatz, aber immer noch muss ich dies tun.

Ich habe bereits Session-Management in Web-API implementiert (genommen Referenz here) und es funktioniert gut, wenn ich alle meine Anfrage vom Postboten senden (dh ich setze Variablen in Sitzung durch Aufruf von 1 Methode und Abrufen dieser Sitzung Variable durch Aufruf der 2. Methode). Aber wenn ich das gleiche von der asp.net Website mit jQuery mache, dann bekomme ich keine gespeicherte Sitzungsvariable (was mir aufgefallen ist, dass ich die Sitzungs-ID jedes Mal anders erhalte - für jede Anfrage).

Code des Sparens Variable in der Sitzung

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

Code Variable des Abrufens in der Sitzung gespeichert

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

Was ich tun, um meine goal..Your Meinung zu erreichen, wird meine Tage speichern .. .

+0

Verwenden von Sitzung ist keine gute Vorgehensweise in Webapi. Verwenden Sie Token-basierte Authentifizierung. –

+0

Ich stimme Ihnen vollkommen zu, aber mein Kunde möchte nur das, also muss ich das tun. –

Antwort

0

Bitte lesen Sie diese Web Api Session storage vor.

Um Daten von Sitzung zu retreive verwenden Sie Javascript sessionStorage (statt Ajax).

+0

Ich habe das schon gelesen. Und Problem ist nicht mit jquery code.Issue ist, dass, wenn ich Web-API in Web-API aufrufen, ich verschiedene Session-ID gefunden habe. Wenn ich Sie nicht verstehe, dann bitte erläutern Sie .. –

+0

Zunächst ist Web Api standardmäßig statuslos. Wenn Sie Daten im Browsersitzungsspeicher speichern möchten (oder benötigen), müssen Sie sie auf Clientseite über js auflösen. Wenn Sie es auf Serverseite lösen, lesen Sie diese [WebApi-Sitzung] (https://www.strathweb.com/2012/11/adding-session-support-to-asp-net-web-api/). – Manfice

+0

Ich habe diesen Artikel auch schon gelesen und das funktioniert gut. Mein Problem ist, dieselbe Sitzungsidentifikation beim Aufrufen von api zu erhalten ... was tatsächlich erfolgreich mit Postman und direkter Anfrage vom Browser ausgeführt wird. –