3

IIS で Windows 認証を有効にせずに、ユーザーの Windows 資格情報 (つまり、ユーザー名) を取得することは可能ですか? Windows 認証が無効になっている場合、以下のコードは、偽装と匿名認証が有効かどうかに応じて、NT AUTHORITY または IIS APPPOOL\ASP.NET v4.0 を返します。

System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();

フォーム認証を使用している asp.net Web アプリケーションをカスタム認証に変換しています。基本的に、ユーザーがネットワークの外部から接続している場合は資格情報のチェックを強制しますが、ネットワーク内から接続している場合は、Windows ユーザー名を取得できるようにしたいと考えています。内部部分は、Windows 認証を有効にすると機能しますが、ネットワークの外部でテストするとポップアップ ログイン ボックスが表示されます。非ローカル接続の Windows 認証を無効にするか、Windows 認証を無効にして Windows ユーザー名を取得する方法を見つける必要があります。助言がありますか?(私が考えたもう 1 つの方法は、アプリケーションを 2 つに分割し、それぞれに別々の認証モードを設定することでしたが、これは避けたいと思います)。

-私も試しました:

System.Web.HttpContext.Current.User.Identity.ToString();
System.Threading.Thread.CurrentPrincipal.ToString();
4

2 に答える 2

1

このようなこと、Active Directory Federated Services を使用して実際に (一種の) 可能です。ネットワーク内の Windows ユーザーの場合、アカウントの詳細を使用するように構成できます。外部ユーザーの場合、ログインが必要なページにリダイレクトできます。

でも。これは非常に負担が大きく、実装するのが非常に困難であり、実際には、この種のソリューションを使用するためのリソースを持つエンタープライズ ソリューションにのみ適用できます。それ以外の場合は、2 サイト アプローチを使用します。

于 2013-02-22T19:04:59.623 に答える
1

簡単な答えはノーです。

最善の解決策は、2 つのサイトを作成することです。1 つは Windows 認証を使用する内部ユーザー用、もう 1 つはユーザーが認証を形成するが AD に対して認証する外部ユーザー用です。デフォルトでユーザーを常に外部サイトに移動させ、IP に基づいてリダイレクトすることができます。つまり、イントラネット ユーザーを内部ユーザーにリダイレクトします。

于 2013-02-22T18:53:22.957 に答える