LAN だけでなく WAN でも実行している Web アプリケーションがあります。同じコードが別の Web アプリで実行されます。WAN では、フォーム認証を使用するように構成しました。シームレスに動作します。ただし、LAN アプリは Windows 認証を使用するように構成されています。
今起こっていることは、ウェブサイトに「Hello DOMAIN\TestUser」と表示されていることです。
- Request.IsAuthenticated は true でなければなりません
- User.Identity.Name が正しいユーザーに設定されている
ただし、「アカウント/ログイン」ページに常にいることに気づきます。明確にするために:私のログインページは、上記の「Request.IsAuthenticated」を実行する一般的なレイアウトテンプレートを使用しています。
私の質問: 認証が明らかに成功したのに、ログイン ページにリダイレクトされるのはなぜですか? そして、それを機能させるにはどうすればよいですか?:)
これは、私の構成の重要な部分だと思います。
<system.web>
<authentication mode="Windows">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear />
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
</system.web>
この Web アプリの IIS は、Windows 認証を有効にして、他のすべての認証方法を無効にしてセットアップされています。
(私は ASP.Net MVC 4 を使用しています)