2017-06-25 8 views
0

APIの実行は、Angular2ベースのアプリケーションやAPIから来る要求はOWINとのOAuth 2.0を使用して固定されて変更されることはありません。問題がどこにあるのかわからないので、コードのどの部分をここに貼り付けるべきか分かりません。ASP.NETのAPIのユーザーは、ローカルホスト上の

シナリオ: ユーザークライアントアプリケーション上で1件のログが ユーザー1は、トークンを取得(APIからトークンを要求します):XXXX ... ユーザー1は、自分のデータを検索し、サーバー ユーザーから戻って彼のデータを取得1クライアントアプリケーションおよびベアラトークンのうちログはlocalStorageを

ユーザー(同じアプリケーションセッション、同じサーバーセッション)で2つのログから削除され、APIからTakonを取得 ユーザー2は、トークンを取得します:YYYY ... ユーザー2は、彼のデータが検索されますが、ユーザからデータを取得し、1

サーバーは、ユーザー2のために別のトークンを取得しますが、

User.Identity.GetUserId(); 
サーバはまだそれを考えて

を見たときに

私も、API /アカウント/ログアウトを呼び出すログアウトユーザー1ですが、これはありません私は(ユーザー1ユーザー2からデータを取得します)私は正しいデータを取得するが、その後のシナリオだけで切り替えられたよりもローカルホストサーバーを再起動し、ユーザー2を使ってログインすると

public IHttpActionResult Logout() 
    { 
     Authentication.SignOut(CookieAuthenticationDefaults.AuthenticationType); 
     return Ok(); 
    } 

何も変更しません。 もっとコードが必要な場合(ただし、AccountControllerに関連するものは変更しませんでした)、私はそれを調べます。

何か助けていただければ幸いです。クライアントから

おかげ

+0

APIは通常、記号アウト機能を持っていません。トークンサーバーは、通常一定の時間が経過した後に終了するトークンによってクライアントを検証して識別します。私は認証を再設計することは選択肢ではないと思いますか? – Crowcoder

+0

@Crowcoderトークンを使用して正しいユーザーが見つかった場合、2人のユーザーに対して2つの異なるトークンが取得された場合、サーバーは両方が同じユーザーであることをサーバーに伝えているのはなぜですか?それは私が理解していないものです。私はログアウトが本当に必要ではないことを知っています、異なるトークンはそれを別のユーザとして見るには十分でなければなりません – lordvlad30

+0

コードなしで言うことは不可能です。私はあなたがそれをデバッグしてそれを理解できると思うだろう。答えられないので、(質の)回答は得られません。 – Crowcoder

答えて

0

峠まだ同じユーザーまたは変更されたかどうかを確認するためにいくつかのパラメータ。その場合は、ログアウトしてもう一度接続してください。

+0

「ログアウトして接続」をもう一度意味しますか? – lordvlad30

+0

var AutheticationManager = HttpContext.Current.GetOwinContext()。認証。 AuthenticationManager.SignOut(); –

0

私見では、あなたはまだベアラUSER1トークンを使用して、サーバがまだuser1ですアクセス誰だと思う理由thatsの。

というのは本当かどうかをチェックするために、あなたは// [承認(ユーザーは=「USER1」を)]を使用するか、ユーザ1または2が許可かを持っているかどうかを確認するためにはuser2に変更することができます。

関連する問題