0

.Net で 1 つの Web サービスを構築します。この Web サービスは、winform アプリケーション、Web アプリケーション、およびモバイル アプリで使用されます。

トークンを使用してこの Web サービスを保護したいと考えています。

ユーザーが Web サービスにログインすると、システムはログインの成功時に一意のトークンを生成し、データベースに保存します。アプリケーションは、Web サービスのメソッドごとにこのトークンを渡す必要があります。私のデータベースはこのトークンを検証し、エンド ユーザーに応答を送信します。

このアーキテクチャの問題は、ログインが成功するたびにトークンが変更され、同じ資格情報を持つ別のログインが以前の成功したログインを停止すると、同じ資格情報で複数のログインを許可したいということです。

この問題の良い解決策を教えてください。

ありがとう

4

1 に答える 1

0

私の頭に浮かぶ最初のことは、データベースに既存のトークンがあるかどうかを確認し、既に生成されているトークンがある場合はそれを返すことです。しかし、それがどれほど良いかはわかりません。ASP.NET ID は、OAuth2 プロトコル上で動作しますが、これは似たようなものです。

ユーザー資格情報でログインします。有効期限のあるアクセストークンを作成しているデバイスの種類は関係ありません。このトークンがまだ有効な間にログインしようとすると、常にそのトークンを取得します。

私の提案は、提供された Identity を使用して、それを拡張することです。最初にコードを作成している場合は、IdentityUser を拡張し、いくつかの追加のプロパティを追加して、アプリケーションに必要なすべてのテーブルを作成できます。ここにいくつかの便利なリンクがあります:

OAuth2公式ページ

ASP.NET Web API 2、Owin、および Identity を使用したトークン ベースの認証

私が助けたことを願っています

于 2015-09-28T12:26:27.233 に答える