0

C# を使用して ASP.NET で簡単な Web アプリケーションを構築しようとしています。このアプリケーションの目的は、ユーザーの Windows アカウント ログイン用の GUID を取得することです。

意図した効果は、ユーザーが自分の Windows マシンでこのサイトにログインしようとすることです。サーバーはユーザーの資格情報を確認し、独自のネットワークでユーザーの Windows ログイン用の GUID を取得します。次に、GUID がデータベースに対してチェックされ、以前に保存したものと一致する場合は、それらを認証してリダイレクトします。私が抱えている問題は、取得しようとしている資格情報は、たとえ取得できたとしても、常にサーバーの資格情報であり、リモート ユーザーの資格情報ではないということです。

で、設定、匿名ユーザーの拒否、web.config設定を試しました。また、これらの多くの順列を試しました。authentication mode = "windows"identity impersonate="true"

HTTPContext何も User.Identity返しませんでした。サーバーの資格情報が返されましたWindowsIdentity.GetCurrent()System.Security.Principal

ただし、これは私のlocalhost. 外部 IIS サーバーに発行するたびに失敗しました。

私がやりたいのは、リモート ユーザーの Windows ログイン用の GUID を取得することだけです。そうすることさえ可能ですか?もしそうなら、私を正しい方向に向ける助けがあれば大歓迎です。

ありがとう!

4

1 に答える 1

0

以下、msdnより引用。これが役立つかどうかはわかりません。

.Net 3.5 では、UserPrinciple クラスが System.DirectoryServices.AccountManagement 名前空間に導入されました。現在の UserPrinciple とそこから Guid を取得するためのプロパティがあります。

例:

using System.DirectoryServices.AccountManagement;
Guid currentGuid = UserPrincipal.Current.Guid;
于 2013-02-26T22:06:11.640 に答える