У меня есть сайт веб-формы ASP.Net, который я хочу аутентифицировать на Identity Server 3. В приложении Identity Server у меня есть определенный список областей действия (один из которых «электронная почта»).Но когда я запускаю свой код и пытаюсь аутентифицироваться, я получаю сообщение об ошибке.Если я удаляю свойство Scope, оно работает нормально, но не включает запрошенные поля Scope (имеет только общие утверждения).Вот мой код:
Public Sub ConfigureAuth(app As IAppBuilder)
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap = New Dictionary(Of String, String)
app.UseCookieAuthentication(New CookieAuthenticationOptions() With {
.AuthenticationType = "Cookies"
})
Dim OpenIdAuthOption = New OpenIdConnectAuthenticationOptions() With {
.Authority = "https://myidentityserver.azurewebsites.net/core/",
.ClientId = "adfasdfafasdfasfasf",
.RedirectUri = "https://localhost:44321/default.aspx/",
.ResponseType = OpenIdConnectResponseType.IdTokenToken,
.SignInAsAuthenticationType = "Cookies",
.Scope = "email",
.Notifications = New OpenIdConnectAuthenticationNotifications() With {
.SecurityTokenReceived = Function(ctx)
Return Task.FromResult(0)
End Function,
.MessageReceived = Function(ctx)
Return Task.FromResult(0)
End Function,
.SecurityTokenValidated = Function(ctx)
Dim claimPrincipal = ctx.AuthenticationTicket.Identity
TransformClaims(claimPrincipal)
Return Task.FromResult(0)
End Function,
.AuthorizationCodeReceived = Function(ctx)
Return Task.FromResult(0)
End Function,
.RedirectToIdentityProvider = Function(context)
RedirectLogin(context)
Return Task.FromResult(0)
End Function
}
}
app.UseOpenIdConnectAuthentication(OpenIdAuthOption)
End Sub
Я получаю ошибку:
"OpenIdConnectMessage.Error не был нулевым, что указывает на ошибку. Ошибка:" invalid_request ". Error_Description (можетбыть пустым): ''. Error_Uri (может быть пустым): ''. "
Может кто-нибудь объяснить, как я могу получить значения области (например," email ") от Identity Server?