0

私は .Net Web プロジェクトを持っていますが、ほとんどの場合、html ページを使用しています (代わりに Web サイト プロジェクトを使用するのが理想的です)。これらのページはRequireJSとの依存関係をロードしているため、最初の html ページのロードで唯一のRazer部分が発生しています。現在、このサイトはホームページと管理ページの両方になっています。ホームページは、管理ページと同じレベルで保護する必要はありません。したがって、ホーム ページに を使用しmapPageRouteて、適切なホーム html ページを指すだけです。
管理ページでは、認証を行い、ユーザーが管理者であることを確認する必要があります。現在、これを達成するために、AdminControllerこれはビューを返します (このビューはデフォルトの Views フォルダーにないため、このビューのカスタムの場所を追加しました)。したがって、コントローラーは次のようになります。

namespace XXXXX.YYY.Web.Controllers
{
    public class AdminController : Controller
    {
        [RequiresPrivilegeAttribute(Constants.Security.Privileges.ADMINISTER_APPLICATION)]
        public ActionResult Index()
        {
            return View();
        }
    }
}

私がやりたいことは、単純に html ファイルをロードするルートを定義することによって、ホーム サイトの場合と同じパターンに従うことです。ホームページでは、これを で使用していますRouteConfig(これは で発生しますApp_Start):

routes.MapPageRoute(
           "",
           String.Empty,
           "~/ui/dist/index.html"
        );

管理サイト ルートの場合、1 番目と 2 番目のパラメーターは "Admin" になり、3 番目のパラメーターは管理者の index.html ("~/ui/dist/admin/index.html") の場所になります。
管理者のセキュリティが考慮されていないため、これは管理サイトでは機能しません。問題は、コントローラーを使用せずに html ファイルへのパスを保護するにはどうすればよいかということです。

さらに、最終的には .NET MVC アプリケーションから離れて、純粋な HTML SPA に置き換えたいと考えています。したがって、コントローラーを使用せずにこれを実現したいと考えています。

4

2 に答える 2

0

Web.Configに追加してみることができますが、MVCでこれを試したことはありません...

<location path="ui/dist">
<system.web>
  <authorization>
    <allow users="UsersToAllow" />
    <deny users="UsersToDeny" />
  </authorization>
</system.web>
</location>

非認証ユーザーを拒否できます<deny users="?"/>。また、このリンクを読んでください ASP.NET MVC アプリを保護しています...

于 2014-11-06T23:03:17.827 に答える