web-dev-qa-db-ja.com

MVC 3がサーバーにインストールされているため、/ Account / Login?ReturnUrl =%2fへのリダイレクトを要求する

MVC3をインストールするまでは正常に実行されていたWindows 2008/IIS7サーバーで実行されている内部ASP.NET Webformsアプリケーションがあります。

これで、リクエストは/ Account/Login?ReturnUrl =%2fにリダイレクトされます。

WebサイトはMVCではなくWebフォームです。これは内部専用サイトであるため、ルートフォルダーに対してWindows認証が有効になっています。

同じサーバー上にこの問題の影響を受けていない他のWebサイトがいくつかありますが、これはルートフォルダーがWindows認証に設定されている唯一のサイトです。

53
johna

Web.configファイルのAppSettingsセクションに次の行を追加することで問題を解決しました。

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>
109
johna

このように修正しました

  1. IISに移動します
  2. プロジェクトを選択してください
  3. 「認証」をクリックします
  4. [匿名認証]> [編集]をクリックし、[特定のユーザー]ではなく[アプリケーションプールID]を選択します。
  5. できた.
30
Akiv

このページから大きく借用したMVC 4の回答を更新し、 フォーム認証セクションの構成に関するASP.NET MVCの問題 (および両方のページで回答)

<appSettings>
   ...
   <add key="PreserveLoginUrl" value="true" />
</appSettings>

...

<authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="43200" /> <!--43,200 in minutes - 30 days-->
</authentication>
7
Aaron Sherman

ただ削除

 <authorization>
      <deny users="?"/>
    </authorization>

web.configファイルから

それは私のためにした

7
Avinash

私の解決策は、タグを追加することでした

[AllowAnonymous]

登録ページのGETリクエストを介して。元々、私が管理していたコードにはありませんでした!

4
Drezus

IISデフォルトページへの自動リダイレクトのリクエスト(default.aspxまたはログインページ)を解決しました]

web.configファイルのAppSettingsセクションに次の行を追加します。

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>
2
tushar malvi

これを解決するには、オプションdefaultURLにアプリケーションのパスを追加します

<forms loginUrl="/Users/Login" protection="All" timeout="2880" name="001WVCookie" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="/Home/Index" cookieless="UseCookies" enableCrossAppRedirects="false" />
2
CelzioBR

Web.configを開き、変更します

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>

<authentication mode="Forms">
  <forms loginUrl="~/Login.aspx" timeout="2880" />
</authentication>

〜/ Default.aspxに変更します

1
Suzk AL

いくつかのWCF SOAP=関連するものを既存のIISサイトに追加したため、この問題が発生し、サイトはweb.config認証リダイレクトを拒否しました。

リストにあるさまざまな修正を試みましたが成功せず、新しい奇妙なURLを長年使用していたURLにマッピングし直す作業を考案しました。

<urlMappings enabled="true">
<add mappedUrl="~/loginout.aspx" url="~/Account/Login"/>
</urlMappings>

うまくいきましたが、見苦しいです。最終的には、Visual Studioによって少し前に追加されたweb.configエントリにたどり着きました。

<add key="webpages:Enabled" value="true" />

私たちはそれが何をするのか正確に解決できなかったので、それを取り出し、問題をすぐに解決しました。

1
philw

これに注意してください:

RegisterGlobalFilters(GlobalFilterCollection filters) {
  filters.Add(new System.Web.Mvc.AuthorizeAttribute());
}
0
fgallego

ドレサス-あなたは私のためにそれを解決しました。本当にありがとう。

AccountControllerでは、ログインは次のようになります。

    [AllowAnonymous]
    public ActionResult Login(string returnUrl)
    {
        ViewBag.ReturnUrl = returnUrl;
        return View();
    }
0
TheWizardOfTN

同様のセットアップ、同一の問題。一部のインストールは機能しますが、フォーム認証を使用していない場合でも、ほとんどの場合、ログインに成功すると/ Account/Login?ReturnUrl =%2fへのリダイレクト(http 302)が開始されます。私の場合、他のすべてを試した後、解決策は、アプリケーションプールマネージドパイプラインモードを統合モードからクラシックモードに切り替えることで、すぐに問題を解決しました。

0
DonPedro

4時間後、すべてを試してみました... Windows 2008 R2では、ファイルはWindow Explorerで緑色でした。これらのファイルは、Zipファイルからの暗号化およびアーカイブ用にマークされていました。ファイルプロパティのこれらのオプションをオフにすると、問題が修正されました。

0
manit

何も機能しない場合は、Web.Configファイルのsystem.web属性に認証モード= "Windows"を追加します。それがあなたのために働くことを願っています。

0
Santosh K