2

私は私にとって非常に独特なものに遭遇しました。Visual Studio 2010 で Web サイトの開発を開始し、2012 年に終了しました。VB.NET、フレームワーク 4.0 です。Web サイト全体で、Request.ServerVariables("LOGON_USER") を使用しています。すべてが正常に機能します。

最近、最初から 2012 を使用して別の Web サイトの開発を開始しました。Request.ServerVariables("LOGON_USER") が値を返さないのです! それは単に空です!ただし、この同じアプリケーションを Visual Studio 2010 で開くと、機能します。

ここで何が起こっているのか、VS2012でどのように修正すればよいのか、誰か説明できますか? ありがとうございました!

4

1 に答える 1

2

この問題は、匿名アクセス セキュリティを使用して .aspx ページにアクセスする場合、ServerVariables コレクション内の認証関連の変数が設定されないために発生します。この問題は、Web.config ファイルのセクションで匿名ユーザー アクセスを許可した場合にも発生する可能性があります。

なし以外の認証モードを使用するときに LOGON_USER 変数を設定するには、web.config のセクションで匿名ユーザーへのアクセスを拒否できます。

Web.config ファイルの認証モードを [なし] 以外に変更するだけです。たとえば、Web.config ファイルの次のエントリは、認証モードをフォーム ベース認証に設定します。

<authentication mode="Forms" />


<!-- To deny access to the Anonymous user in the Web.config file, use the following syntax: --!>

<authorization>
   <deny users = "?" /> <!-- This denies access to the Anonymous/unregistered user -->
   <allow users ="*" /> <!-- This allows access to all registered users -->
</authorization>

これが VS 2010 と 2012 で異なる理由はわかりませんが、これは以前に発生したことがあり、上記の手順を使用して修正しました。先ほど言ったように、web.config ファイルを確認してください。

これがあなたの質問に答えることを願っています!

于 2013-03-26T19:14:00.333 に答える