Request.ServerVariables("LOGON_USER") は、ASP.NET で空の文字列を返します
この記事では、変数が ASP.NET で空の文字列を Request.ServerVariables("LOGON_USER")
返す問題の解決策について説明します。
元の製品バージョン: ASP.NET
元の KB 番号: 306359
現象
ASP.NET で変数に Request.ServerVariables("LOGON_USER")
アクセスしようとすると、空の文字列が返されます。
Microsoft Visual C# .NET を使用している場合、次の構文はこの変数にアクセスします。
Request.ServerVariables["LOGON_USER"]
原因
この問題は、匿名アクセス セキュリティを使用して .aspx ページにアクセスする場合、コレクション内 ServerVariables
の認証関連の変数が設定されないために発生します。 この問題は、web.config ファイルのセクションで匿名ユーザーにアクセス権を<authorization>
付与した場合にも発生する可能性があります。
解決方法
以外None
のLOGON_USER
認証モードを使用するときに変数を設定するには、web.config ファイルのセクションで<authorization>
匿名ユーザーへのアクセスを拒否できます。 セクションの匿名ユーザーへのアクセスを拒否するには、次の <authorization>
手順に従います。
web.config ファイルの認証モードを 以外
None
のものに変更します。 たとえば、 web.config ファイルの次のエントリは、認証モードをフォーム ベースの認証に設定します。<authentication mode="Forms" />
web.config ファイル内の匿名ユーザーへのアクセスを拒否するには、次の構文を使用します。
<authorization> <deny users = "?" /> <!-- This denies access to the anonymous user --> <allow users ="*" /> <!-- This allows access to all users --> </authorization>
Windows 認証を使用している場合は、次の手順を使用してこの問題を解決することもできます。
web.config ファイルの認証モードを次のようにに
Windows
変更します。<authentication mode="Windows" />
Internet Services Manager で、.aspx ファイルまたは Web プロジェクト フォルダーを右クリックし、[プロパティ] を選択します。
Web プロジェクト フォルダーの [プロパティ] を選択した場合は、[ディレクトリ セキュリティ] タブを選択します。.aspx ファイルの [プロパティ] を選択した場合は、[ファイル のセキュリティ] タブを選択します。
[ 匿名アクセスと認証制御] で、[編集] を選択 します。
[認証方法] ダイアログ ボックスで、[匿名アクセスチェック] ボックスをオフにし、[基本]、[ダイジェスト]、または [統合 (NT チャレンジ/応答)] チェック ボックスを選択します。
[ OK] を選択 して、両方のダイアログ ボックスを閉じます。
状態
この動作は仕様です。
詳細
ASP.NET では、.config ファイルで構成できる新しい認証モードと承認スキームが提供されます。 このため、IIS のみで認証モードを変更すると、常に目的の結果が得られるとは限りません。 そのため、.config ファイルのセキュリティ設定も考慮する必要があります。
注:
Windows 認証と組み合わせて匿名認証を有効にした場合、または、 以外の認証モードを使用している間にセクション内の<authorization>
匿名ユーザーへのアクセスを許可する場合は、 などのAUTH_USER
REMOTE_USER
他のサーバー変数 (および HttpContext.Current.User.Identity.Name
プロパティ) も空の文字列を返します。None
上記のいずれかの解決策を使用して、これらの変数を設定できます。
ASP.NET では、 オブジェクトの プロパティをIsAuthenticated
Request
使用して、匿名アクセス セキュリティが使用されているかどうかを判断することもできます。 IsAuthenticated
匿名アクセスが有効になっている場合は false を返し、などのForms
Passport
Integrated (NT Challenge/Response)
Basic
他の認証方法を使用する場合は true を返します。
関連情報
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示