asp.net 핵심 응용 프로그램이 있고 응용 프로그램이 IdentityServer3을 사용하여 OpenIdConnect 인증을 사용하고 있습니다. 사용자가 성공적으로 인증되면 응용 프로그램은 ID 서버에서 적절한 클레임을받습니다. TokenValidatedContext.Ticket.Principal.Claims
라인을 디버그하여 OnTokenValidatd
에 등록하고 애플리케이션이 모든 클레임을 받았는지 확인하십시오. 나는 홈 컨트롤러에 User.Cliams
을 디버깅 할 때ASP.NET 핵심어가 User.Claims 속성에 두 번 클레임을 추가하는 이유는 무엇입니까?
코드 조각 아래
var connectOptions = new OpenIdConnectOptions()
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
Authority = authority,
ClientId = clientId,
ResponseType = IdentityConstant.IdTokenClaim,
AuthenticationScheme = IdentityConstant.OpenIdAuthenticationScheme,
SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme,
PostLogoutRedirectUri = postlogoutRedirectUri,
CallbackPath = IdentityConstant.CallbackPath,
Events = new OpenIdConnectEvents()
{
OnTokenValidated = async context =>
{
var claims = context.Ticket.Principal.Claims;
await Task.FromResult(0);
}
}
};
이 성공적으로 인증 후에,
그러나 OnTokenValidated
핸들러 TokenValidatedContext.Ticket.Principal.Claims
의 빠른 시계입니다, 나는 모든 주장을 참조 두 번 추가됩니다.
다음은 홈 컨트롤러 주장 User.Claims에 두 번 추가지고 왜
에서 User.Claims
의 빠른 시계는?
클레임이 중복 된 것을 어떻게 보는지 알 수 없습니다. – DForck42