Как проверить утверждения токена в .NET Core Web Api для проверки безопасности Active Directory Azure - PullRequest
0 голосов
/ 07 февраля 2019

Когда поступит запрос POST для авторизации, я докажу требования токена.Мой код вы найдете ниже.Я устанавливаю разрывы на каждой строке.Но со строки

`    policy.RequireAssertion(context =>`

компилятор сразу переходит к концу метода.Нужно ли мне что-то еще, прежде чем я сделаю это доказательство или мне нужно изменить синтаксис.Было бы здорово получить помощь.Фрэнк

`    services.AddAuthorization(configure =>
{
    configure.AddPolicy("AccessControllerClaimGroupGUIDPolic", policy =>
    {
        policy.RequireAssertion(context =>
        {
            return context.User.HasClaim(c =>
            {
                return (c.Type == "groups" && AllowedClaimsGroupIds.Contains(c.Value)) || (c.Type == "http://schemas.microsoft.com/identity/claims/objectidentifier" && AllowedClaimsOId.Contains(c.Value));
            });
        });
    });
});`

1 Ответ

0 голосов
/ 07 февраля 2019

@ Фрэнк,

Можете ли вы попробовать ниже код: -

 policy.RequireAssertion(context =>
                    {
                        var checkIfUserHasClaim= context.User.HasClaim(c =>
                        {
                            c.Type == "groups" && AllowedClaimsGroupIds.Contains(c.Value) || (c.Type == "http://schemas.microsoft.com/identity/claims/objectidentifier" && AllowedClaimsOId.Contains(c.Value));
                        });
                        return checkIfUserHasClaim;
                    })

public IActionResult Index()
        {
            bool hasClaim = HttpContext.User.HasClaim(c =>
                               c.Type == "groups" || (c.Type == "http://schemas.microsoft.com/identity/claims/objectidentifier")
                           );
           // return hasClaim;
            return View();
        }

enter image description here

...