ウェブサーバーが同じネットワーク上にある間に、現在ログインしているリモートコンピュータのユーザーのユーザー名をウェブサイトから取得するにはどうすればよいですか?

私はあなたの多くが私の質問が既に尋ねられ、答えられていると思うことを知っていますが、私が試した多くのオプションについて議論したいだけです。

今私のセットアップはこれです。 Windows XPを実行している約50のクライアントがプロフェッショナルです。 Windows Server 2003を実行している1台のサーバー。サーバーA 1台のサーバーがsquidをプロキシサーバーとLinux OSとして実行しています。それをサーバBと呼ぶ 1つのサーバーがApacheを実行しています(ただし、サーバーを起動しています)。サーバーCと呼んでください。 現在、クライアントはWindowsのアクティブディレクトリを使用してドメインにログインし、ドメインサーバはサーバAです。 ブラウザは、サーバBであるプロキシサーバを使用するように設定されています。

プロキシサーバーが制限を超えるダウンロードを許可しないように設定されています(私の場合は100 Mbです)。クライアントが制限を超える要求を行うと、エラーページが表示されます。

今私はエラーページを置き換え、それはマシンCで実行されている私のウェブサイトにユーザーをリダイレクトします。私はまた、ユーザーがアクセスしようとしているリンクを与えられています。次に、どのユーザーがシステムにログオンしているかを調べる必要があります。だから私はファイルをダウンロードし、それぞれのユーザーにダウンロードの完了を通知することができます。

今私がやったことは、ユーザー名や電子メールなどを求めるだけです。 しかし、私は再び彼の名前を入力の喧騒からユーザーを保存したい。

私は次のオプションを試しました。

  1. .NET http://www.codeproject.com/KB/cs/getusername。 aspx (動作しませんでした。 私は何かが恋しくなるかもしれない)
  2. wmic http://www.robvanderwoude.com/ntadmincommands.php#Cmd02 (働いた)
  3. イカによるLDAP(LDAP、アクティブディレクトリなど)

今私はこれに関する質問があります。

  1. これらのすべてのオプションはありますか、何か不足していますか?
  2. なぜ.NETオプションが機能しなかったのですか?
  3. さまざまなsquid認証方法を使用できますが、ログオン後に少なくとも1回ログインする必要があります。私はこれを望んでいない。ユーザーがログインしたときに認証を使用する方法はありますか?ユーザー名とパスワードを再度要求しないでください。
1

1 答え

ASP.Netアプリケーション内でユーザーのドメインログインを取得するには、 Request.ServerVariables( "logon_user")を使用する必要があります。

ただし、その他の考慮事項もあります。

1)Webサイトに対してのみWindows認証を有効にする必要があります。

2)あなたのユーザーのブラウザ(IEを前提とする)は、統合Windows認証を有効にするを有効にする必要があります。

3)ブラウザーからASP.Netアプリケーションへの要求が間接的(つまり1ホップ以上)である場合、関連するすべてのシステムがKerberos認証用に構成されていることを確認する必要があります(これは非常に困難です)。 。

ASP.Netをセットアップして、エンドユーザーを偽装するを使用すると、元のコードが正しく動作するようになります。ただし、これはスレッドで発生するすべてのこと(データベースアクセス、ファイルアクセスなど)がエンドユーザーとして実行されることを意味します。

2
追加された
GetCurrent()。Nameはスレッド実行プログラムの名前を返します。 ID偽装を有効にしている場合、エンドユーザーになる可能性があります。そうしないと、ASP.NetアプリケーションプールのIDになります。
追加された 著者 competent_tech,
ご回答いただきありがとうございます。ただ明確にします。これは、私のウェブサイトにアクセスしたユーザーがcurrenlyでログインしたユーザー名を私に与えます。私は、System.Security.Principal.WindowsIdentity.GetCurrent()。Nameを使用して、クライアントのユーザー名を取得します。 IISが稼動していたのと同じマシンでWebサイトを開いたとき、現在ログインしているユーザー名が取得されました。しかし、別のPCでサイトにアクセスしたとき、ユーザー名は何か別のものでした。
追加された 著者 Waleed,