にアクセスしてアクセスできるWebページがあります
myapp.mydomain.com/Account/Login
サイトのルート フォルダーにプロジェクト アプリがありますが、アプリ自体の中でルーティング構成を編集すると、問題が発生します。
ユーザーがリクエストしたときにURL書き換えモジュールを使用しようとしています
myapp.mydomian.com
上記の完全な URL に自動的にリダイレクトされます。
このように設定する方法がわかりません!!
にアクセスしてアクセスできるWebページがあります
myapp.mydomain.com/Account/Login
サイトのルート フォルダーにプロジェクト アプリがありますが、アプリ自体の中でルーティング構成を編集すると、問題が発生します。
ユーザーがリクエストしたときにURL書き換えモジュールを使用しようとしています
myapp.mydomian.com
上記の完全な URL に自動的にリダイレクトされます。
このように設定する方法がわかりません!!
質問の下のコメントの回答に基づいて:
「myapp.mydomian.com にアクセスしてログインします。これが最初に表示されるページです」
ユーザーがアプリケーションを使用するために常にログオンする必要があるようにする正しい方法は、System.Web.Mvc.Authorize
属性を使用することです。
ルールを書き直したり、ルートをいじったり、web.config
ファイル<authorize>
構成要素からこれを駆動したりしないでください。
テンプレート MVC Internet Application を例にとると、2 つのコントローラーがあります。
MVC アプリケーションの一部だけを保護したい場合は、各コントローラー クラスを[Authorize]
属性で装飾します。例えば:
[Authorize]
public class HomeController : Controller
{
....
}
ただし、すべてのコントローラーを保護したい場合は、かなり面倒です。代わりに、クラスRegisterGlobalFilters
にある静的メソッドに行を追加することで、これをグローバルに行うことができます。FilterConfig
このクラスは、プロジェクトのApp_Start
フォルダー ( FilterConfig.cs
) にあります。
このファイルを開き、RegisterGlobalFilters
静的メソッドに次の行を追加してください。
filters.Add(new AuthorizeAttribute());
例えば:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new AuthorizeAttribute()); // <-- Add me
}
また、セクションweb.config
の下のファイルに次のものがあることを確認してください。system.web
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
とにかく、箱から出してこのように構成する必要があります。
詳細については、以下をお読みください。
http://www.davidhayden.me/blog/asp.net-mvc-4-allowanonymous-attribute-and-authorize-attribute