1

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 を使用しています)

4

3 に答える 3

1

以前にこれに遭遇し、プロジェクトが正常に実行されるローカルの IIS 展開と、サーバーに展開されたものを比較する必要があります。展開されるべきではない余分な DLL があることが判明しました。ただし、私のシナリオはあなたのシナリオとは少し異なります。プロジェクトは私のローカル マシンで動作していましたが、LAN 環境では動作していませんでした。削除する必要のある余分なファイル:

  • WebMatrix.Data.dll
  • WebMatrix.WebData.dll

あなたと同じケースであることを願っています。これは、展開が難しい問題の 1 つです。

于 2013-04-05T08:01:25.093 に答える
0

ここで解決策を見つけました: http://martinnormark.com/asp-net-mvc-3-windows-authentication-problem-redirects-to-account-login グーグルでさらに数時間を費やした後...

幸いなことに、答えは非常に簡単です。次の 2 つのプロパティをアプリの設定に追加します。

  <appSettings>
    <add key="autoFormsAuthentication" value="false" />
    <add key="enableSimpleMembership" value="false"/>
  </appSettings>

私には非常に悪い習慣のように見えます...しかし、ちょっと、それは仕事をします.

于 2013-04-05T12:11:11.623 に答える
0

<forms loginUrl="~/Account/Login" timeout="2880" />行と<membership />セクションを取り出すと役立つでしょうか?

どちらがあなたに残りますか:

<system.web>
    <authentication mode="Windows"></authentication>        
</system.web>
于 2013-04-05T09:33:58.350 に答える