Вот мой код в 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);