1

Azure のワーカー ロールでホストされているサービスがあります。クライアントは、相互クライアント/サービス認証用の証明書を使用し、カスタムのユーザー名パスワード検証を使用して、NetTcp バインディングを介して接続します。

クライアントは、共有シークレット認証を使用して、Azure サービス バスを介してブロードキャストされるイベント通知も受信します。

私はこれを安全にし、ある人が自分のログイン情報を友人や他の人と共有できないようにしたいと考えています。同様に、あるマシンでログオフするのを忘れて、別のマシン (タブレット、職場のコンピューターなど) からサービスにログインしたユーザーは、ログオフしていないアプリケーションの自動シャットダウンをトリガーする必要があります。

私は呼び出しごとのサービスを使用しており、セッションを使用してソリューションを実装するには、多くの再配線が必要になります。

ユーザーが操作呼び出しを行ったときにユーザーのコンテキストを追跡し、現在そのログイン/資格情報を使用している IP を追跡する必要があると考えています。複数のログインが検出されたときに、サービスがクライアントに kill コマンドを送信できる、ある種の「デス タッチ」ができるようにしたいと考えています。

この問題に対処するパターンへの提案やポインタをいただければ幸いです。

ありがとう。

4

1 に答える 1

1

PerSession を使用したとしても、同じユーザーが複数のセッションに参加していて、セッションのオーバーヘッドがあるかどうかを判断する必要があります。

私は WSHttpBinding でのみこれをテストし、Azure ロールでホストされていないため、NetTcp Azure ロールで機能しない場合は投票しないでください - コメントしてください。削除します。PerCall を使用しても、SessionID は永続的であり、SessionID はクライアントとサーバーの両方で使用できます。複数のユーザーが同じ IP アドレスを持つことができますが、SessionID はセッションに固有です。明らかに、userID、SessionID を記録する必要がありますが、テーブル ストレージは安価です。

同時使用のためにライセンスモデルを更新するかもしれません。userID と sessionID を記録することで、最大同時使用量を計算するアルゴリズムを作成できます。

于 2012-06-20T19:43:33.317 に答える