标签: .net-core-authorization

.Net Core 授权与定制要求/处理程序

我之前问过类似的问题,在其他人的帮助下我取得了一些进展,但仍然不确定我在这里做错或错过了什么。

我的应用程序很简单:域用户经过身份验证。经过身份验证的用户(作者)创建一个请求,保存在数据库中。其他经过身份验证的用户只能查看该请求。作者和管理员用户可以编辑/删除请求。

这是我遵循的示例之一: 不同角色的不同 API 功能

另一个 PoliciesAuthApp:https://github.com/aspnet/Docs/tree/master/aspnetcore/security/authorization/policies/samples/PoliciesAuthApp1 我不确定这里如何使用/注册/调用 PermissionHandler 。

这是我的代码:

启动.cs

//  Add Authentication
//  Global filter
services.AddMvc(config =>
{
    var policy = new AuthorizationPolicyBuilder()
                     .RequireAuthenticatedUser()
                     .RequireRole("Role - Domain Users")
                     .Build();
    config.Filters.Add(new AuthorizeFilter(policy));
});


//  Add Authorization Handlers
services.AddAuthorization(options =>
{
    options.AddPolicy("EditPolicy", policy => policy.Requirements.Add(new EditRequirement()));
});

services.AddSingleton<IAuthorizationHandler, PermissionHandler>();
Run Code Online (Sandbox Code Playgroud)

编辑需求.cs

public class EditRequirement : IAuthorizationRequirement
{
}
Run Code Online (Sandbox Code Playgroud)

PermissionHandler.cs

public class PermissionHandler : IAuthorizationHandler
{

    public Task HandleAsync(AuthorizationHandlerContext context)
    {
        var pendingRequirements = context.PendingRequirements.ToList();

        foreach (var requirement in …
Run Code Online (Sandbox Code Playgroud)

asp.net-core-mvc .net-core asp.net-core .net-core-authorization

4
推荐指数
1
解决办法
3549
查看次数

身份的方案名称是什么?

假设我使用以下内容:

services.AddIdentity<User, UserRole>()
        .AddEntityFrameworkStores<AppDbContext>();
Run Code Online (Sandbox Code Playgroud)

设置的认证方案名称是什么?我在任何文档中都找不到。我试图与名称寻找类IdentityAuthenticationDefaultsIdentityDefaults却一无所获。我尝试过“ Cookies”,但未设置为此。该应用程序运行良好,因此肯定设置了一些方案名称。

c# asp.net-identity asp.net-core asp.net-core-identity .net-core-authorization

0
推荐指数
1
解决办法
252
查看次数