1

にアクセスしてアクセスできるWebページがあります

myapp.mydomain.com/Account/Login

サイトのルート フォルダーにプロジェクト アプリがありますが、アプリ自体の中でルーティング構成を編集すると、問題が発生します。

ユーザーがリクエストしたときにURL書き換えモジュールを使用しようとしています

myapp.mydomian.com

上記の完全な URL に自動的にリダイレクトされます。

このように設定する方法がわかりません!!

4

1 に答える 1

0

質問の下のコメントの回答に基づいて:

「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

于 2013-09-05T22:01:54.740 に答える