2017-10-23 16 views
0

私は現在のofficial Microsoft Docsを見てきましたが、RazorPagesの認可の処理方法を適切にカバーするものが見つかりませんでした。RazorPagesに権限を追加する方法は?

私はあなたがそうのようPageModelAuthorizeAttributeを追加できることを考え出し:

// using Microsoft.AspNetCore.Authorization 

[Authorize] 
public class IndexModel : PageModel 
{ 
    ... 
} 

私はすべてのページのためにこれを繰り返したくはありません。より良い方法がありますか?

答えて

1

ConfigureServicesメソッドで許可を設定できます。ここでの例である:

services.AddMvc() 
    .AddRazorPagesOptions(options => 
    { 
     options.Conventions.AuthorizeFolder("/MembersOnly"); 
     options.Conventions.AuthorizePage("/Account/Logout"); 

     options.Conventions.AuthorizeFolder("/Pages/Admin", "Admins"); // with policy 
     options.Conventions.AllowAnonymousToPage("/Pages/Admin/Login"); // excluded page 

     options.Conventions.AllowAnonymousToFolder("/Public"); // just for completeness 
    }); 

例は上記の例provided in the official repositoryから延長されています。 AuthorizePageは、個々のページに基づいてアクセスを制限することになるのに対し、

AuthrorizeFolderは、フォルダ全体へのアクセスを制限します。したがって、逆のことを行うのはAllowAnonymousToFolderAllowAnonymousToPageです。

上記の特定のドキュメントについては、現在のところ、ドキュメントはまだ完成しています。しかし、あなたはそれの進歩について読んで、ここでそれを追跡することができますhttps://github.com/aspnet/Docs/issues/4281

関連する問題