ASP .NET Core 2.1の初心者であり、個別認証でASP .NET Core 2.1を使用しているプロジェクトで作業しています。ログインページを作成したいホーム/インデックスの代わりに私のデフォルトルートとして:
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
ASP .NET Core 2.1 as LoginがMVCアクションビューの代わりにかみそりページとして使用されるようになりましたので、どのように変更できますか?.
ConfigureServicesメソッドでこれを使用します。
services.AddMvc().AddRazorPagesOptions(options=> {
options.Conventions.AddAreaPageRoute("Identity", "/Account/Login","");
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
次にConfigureメソッドで
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
ConfigureServices
関数(Startup.cs)でこのコードを使用してこれを解決します
services.AddMvc().AddRazorPagesOptions(options => {
options.Conventions.AddAreaPageRoute("Identity", "/Account/Login", "/Account/Login");
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
このコードをStartup.csのConfigureServices()に挿入します
{
services.AddMvc().AddRazorPagesOptions(options =>
{
//Registering 'Page','route-name'
options.Conventions.AddPageRoute("/Account/Login", "");
});
}
その後、私はそれを解決しました。追加が必要[〜#〜] allow [〜#〜] for [〜#〜] areas [〜#〜] =>
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddRazorPagesOptions(options =>
{
options.AllowAreas = true; //--working after add this line
options.Conventions.AddAreaPageRoute("Identity", "/Account/Login", "");
});
これを構成で使用してください。これにより、AuthorizeAttributeがページに追加されます
services.AddMvc()
.AddRazorPagesOptions(options =>
{
options.Conventions.AuthorizePage("/Home/Index");
});
または、次のようにデフォルトルートを変更します。
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/Employees/Index", "");
});
必要に応じてこのページを参照してください: https://docs.Microsoft.com/en-us/aspnet/core/security/authorization/razor-pages-authorization?view=aspnetcore-2.1
これは役立つかもしれませんが、デフォルトのページを自分で変更する必要はありませんでした
https://exceptionnotfound.net/setting-a-custom-default-page-in-asp-net-core-razor-pages/
承認ポリシーを追加して、アプリケーションがデフォルトでユーザーにabcフォルダーの下のページの認証を要求し、abcフォルダーの下のいくつかのパブリックページを要求しないようにします。
services.AddRazorPages().AddRazorPagesOptions(options =>
{
options.Conventions.AuthorizePage("/abc");
options.Conventions.AllowAnonymousToPage("/abc/PublicPage");
});