MVC: Использование User.IsInRole ("") после входа в AAD - PullRequest
0 голосов
/ 12 июня 2019

Таким образом, пользователи проходят аутентификацию с использованием AAD, но мне нужно получить роль, которой они были распределены в базе данных.

Я попытался добавить это к своему openIdConnectAuthenticationOptions в моем Startup.Auth, как предлагалось в некоторыхposts:

TokenValidationParameters = new TokenValidationParameters()
                    {
                        ValidateIssuer = false, // Simplification (see note below)
                        //RoleClaimType = System.Security.Claims.ClaimTypes.Role
                        RoleClaimType = "http://schemas.microsoft.com/ws/2008/06/identity/claims/role"

} Но при проверке заявок во время отладки роль не отображается.Я предполагаю, что это потому, что при использовании SignInManager вход в систему не происходит, поэтому я попытался выполнить фактический вход после успешной аутентификации AAD, поскольку у меня есть идентификатор пользователя из БД:

var user = db.Users.Where(x => x.Id == loggedInUserId).FirstOrDefault();

            var userForIdentity = UserManager.FindById(user.Id);

            if (user != null)
            {
                await SignInManager.SignInAsync(user, true, true);
            }

Я подумал, что если я сделаю вышеупомянутое после входа в AAD, то роль будет добавлена, чтобы я мог, например, использовать User.IsInRole («Администратор»), но, похоже, он его не добавляет.

Я видел некоторые сообщения, в которых говорится, что мы можем редактировать манифест в Azure AD в приложении, которое было зарегистрировано, но у меня нет доступа к клиентам AAD.

У меня вопрос, есть ли способиспользовать User.IsInRole ("") в зависимости от того, что находится в БД после входа в AAD?

Спасибо за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...