0

私は次の詳細でクライアントサーバーアプリケーションに取り組んでいます:

Client(C++) -----------HTTPS---     Server (C#/WCF)

サーバー:

  • Windows Active Directory ドメインのユーザーと
  • Windows AD に対する認証サービスを提供する IIS で実行される WCF サービス
  • Windows API logonUser を使用した REST ベースの認証 API を提供します。

クライアント:

  • クライアントは REST SDK (Visual Studio 2013 ベース) を使用してサーバーに接続します
  • クライアントは、HTTPS を使用した認証のための認証 API を提供します。

現在、サーバーでクライアントにログインしているWindowsユーザーを認証するために取り組んでいます:

  • AD ユーザーがクライアントにログインし、認証 API を呼び出す
  • 現在ログインしているユーザーの詳細は、HTTPS を使用してサーバーに送信する必要があります (もちろんユーザー名のみ)。
  • クライアントから取得した情報を使用して WindowsIdentity 構造を作成します。

私は次のことを試しました:

  • クライアント マシンから SID を取得し、サーバーに渡します。クライアント ログインの SID から WindowsIdentity を再作成します。
    • 渡された SID から WindowsIdentity を取得できませんでした。

質問:

  1. クライアントから渡されたログインした AD ユーザーの SID からサーバー (C#) で Windows ID を取得する方法は?
  2. 上記の設定を達成するための他のより良い方法はありますか?
4

1 に答える 1

3

やってみました

ServiceSecurityContext.Current.WindowsIdentity.Name

ただし、Active Directory へのクエリを使用せずにユーザー名の形式を変換する方法はありません。その場合、グループ メンバーシップを確認するために WindowsPrincipal を作成する必要はありません。おそらく、AD への別の接続が必要になるからです。このリンクで提供されているソリューションを使用してみて ください

于 2013-12-03T12:47:50.597 に答える