Проверьте роли пользователя в приложении MVC для авторизации из Azure Active Directory - PullRequest
0 голосов
/ 24 октября 2018

Вот мой код в Startup.Auth.cs

 public void ConfigureAuth(IAppBuilder app)        {

       JwtSecurityTokenHandler.DefaultMapInboundClaims = false;
        app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

        app.UseCookieAuthentication(new CookieAuthenticationOptions());

        app.UseOpenIdConnectAuthentication(
            new OpenIdConnectAuthenticationOptions
            {
                ClientId = clientId,
                Authority = authority,
                PostLogoutRedirectUri = postLogoutRedirectUri,
                TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer=false,
                    NameClaimType = "upn",
                   RoleClaimType ="roles"   
                }                   
            });
    }

И в моем представлении MVC я проверяю @ User.IsInRole ("CBUser"), который возвращает True, поскольку у пользователя есть ролькак CBUSer.Весь этот код прекрасно работает в Visual Studio с аутентификацией и авторизацией Azure AD.Но когда я перемещаю приложение в Azure, @ User.IsInRole («CBUser») всегда возвращает false.Как я могу прочитать пользовательские роли либо в MVC View, либо в Controller. Я попробовал нижеприведенный код, чтобы прочитать пользовательские роли, которые работают нормально при отладке в VS2015. Но не работает после перемещения приложения в среду Azure

            var appRoles = new List<string>();
        foreach (Claim claim in ClaimsPrincipal.Current.FindAll("roles"))
                appRoles.Add(claim.Value);

1 Ответ

0 голосов
/ 24 октября 2018

Код, который вы разместили, кажется нормальным.Возможно, вы можете взять официальный пример для ознакомления: Авторизация в веб-приложении с использованием ролей и утверждений приложения Azure AD

Также вы можете удаленно отлаживать ваше веб-приложение: Устранение неполадоквеб-приложение в службе приложений Azure с использованием Visual Studio

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