Windows 認証を使用する asp.net イントラネット アプリケーションがあります。数年前に VS 2005 でアプリケーションを作成しましたが、Windows 認証ビットは完全に機能していました。私のweb.configには次のものがあります(内部構成-> system.web要素):
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
これを Firefox でテストして資格情報が必要であることを確認しました。実際、サイトに最初にアクセスするときにネットワーク資格情報の入力を求められ、それらが無効な場合は拒否されます。
しかし、HttpContext.Current.User.Identity にアクセスしようとすると、オブジェクトの Name と AuthenticationType に空の文字列があり、Authenticated = false になっています。インターウェブを調べた後、WindowsTokenRoleProvider を有効にする必要があるのではないかと考えましたが、何も変わりませんでした。
<roleManager defaultProvider="WindowsProvider" enabled="true" cacheRolesInCookie="false">
<providers>
<clear/>
<add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider"/>
</providers>
</roleManager>
最後に動作するのを確認してから私が行った 2 つのことは、変換ウィザードを使用してプロジェクトを VS 2008 にアップグレードすることです。また、同僚があちこちで作業している間、数か月間プロジェクトを停止しました。 . User.Identity に影響を与えるのは上記の web.config の値だけだと確信していましたが、明らかに何か間違っているようです。他の誰かが同様の問題に遭遇したり、私が間違っていることを見たりしますか? ありがとう。