Мне нужно получить некоторую информацию от пользователя из претензий.У меня есть это в моем методе контроллера
var MyClaimsPrincipal = (ClaimsPrincipal)System.Web.HttpContext.Current.User;
, но он всегда возвращает пустое
![enter image description here](https://i.stack.imgur.com/SVkic.png)
Вот мой Startup.Auth
класс
![enter image description here](https://i.stack.imgur.com/ek6Xo.png)
Странно то, что этот код работал раньше, заявки были заполнены из заявок токена, и вдруг это не работает.
токен присутствует в запросе, и если я его декодирую, я вижу претензии ![enter image description here](https://i.stack.imgur.com/k8Myg.png)
Любой совет приветствуется
Я перепроверил иправильные идентификаторы приложения, правильное имя пользовательской политики.
Это Startup.Auth class
public partial class Startup
{
// These values are pulled from web.config
public static string AadInstance = ConfigurationManager.AppSettings["ida:AadInstance"];
public static string Tenant = ConfigurationManager.AppSettings["ida:Tenant"];
public static string ClientId = ConfigurationManager.AppSettings["ida:ClientId"];
public static string SignUpSignInPolicy = ConfigurationManager.AppSettings["ida:SignUpSignInPolicyId"];
public static string DefaultPolicy = SignUpSignInPolicy;
/*
* Configure the authorization OWIN middleware
*/
public void ConfigureAuth(IAppBuilder app)
{
TokenValidationParameters tvps = new TokenValidationParameters
{
// Accept only those tokens where the audience of the token is equal to the client ID of this app
ValidAudience = ClientId,
AuthenticationType = Startup.DefaultPolicy,
NameClaimType = "http://schemas.microsoft.com/identity/claims/objectidentifier",
ValidIssuer = "http://schemas.microsoft.com/identity/claims/iss"
};
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
// This SecurityTokenProvider fetches the Azure AD B2C metadata & signing keys from the OpenIDConnect metadata endpoint
AccessTokenFormat = new JwtFormat(tvps, new OpenIdConnectCachingSecurityTokenProvider(String.Format(AadInstance, Tenant, DefaultPolicy)))
});
}
}
Я использую эту конфигурацию в части внешнего интерфейса:
clientID: 'id',
authority: "https://login.microsoftonline.com/tfp/tenantname.onmicrosoft.com/B2C_1A_SignUpOrSignInWithAAD/v2.0/",
scopes: ["openid"],
и это в API
<add key="ida:AadInstance" value="https://login.microsoftonline.com/{0}/v2.0/.well-known/openid-configuration?p={1}" />
<add key="ida:Tenant" value="tenantname.onmicrosoft.com" />
<add key="ida:ClientId" value="id" />
<add key="ida:SignUpSignInPolicyId" value="B2C_1A_SignUpOrSignInWithAAD" />