Мне очень трудно заставить OpenIDConnect правильно работать с этим asp. net 4.6 mvc 5 проектом. Недавно я получил ошибку 404 и в итоге добавил собственный маршрут к действию обратного вызова, чтобы заставить его работать после этого. После того, как я начал получать сообщение об ошибке GetExternalLoginInfoAsyn c (), возвращающей null и получающей исключение nullreference. Вот так выглядит мой конфиг с отредактированными вещами вместе с маршрутизацией. Также предоставленное изображение является одной из ошибок, которые я получаю, если я не использую пользовательскую маршрутизацию, я просто получаю ошибку 404.
OpenIdConnect nonce cook ie есть, также в URL-адресе оно отправляет состояние и код
https://localhost:44348/signin-oidc/?code=e33dab0ae5e9640ef731c460180780092703727b&state=OpenIdConnect.AuthenticationProperties%3D-JlLC-VdZi-KZst8OY4JikRrl59vm19HATAcOaqUv8a22U8ch9gC_IJARHlsvaDKZQrqfeTewtdk5d-KcZSrUR3qCoJVcmzNRDP8C0JJ2NH9ql42J3H1xkxEzoAvJ0wxITy-tCj5H-N-bYhMZbO4kB8s2S4msCF0kEDzgipoPmGfZfreUeyYcerwK_OJGH3uYKUYa1NjqA0G-hlhiYpUj8DUp59EXpDz6sr1wtohTiI
код
var json = "";
using (WebClient wc = new WebClient())
{
json = wc.DownloadString("http://orders.data443.com/oauth/openid-configuration.php");
}
var settings = new OpenIdConnectAuthenticationOptions
{
Authority = "https://orders.data443.com/oauth/",
ClientId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
ClientSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
RedirectUri = "https://localhost:44348/signin-oidc/",
CallbackPath = new PathString("/signin-oidc/"),
Configuration = new OpenIdConnectConfiguration(json),
ResponseType = OpenIdConnectResponseType.Code,
SignInAsAuthenticationType = "Cookies",
TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = false,
},
Scope = "openid email profile"
};
app.UseOpenIdConnectAuthentication(settings);
Маршрутизация
routes.MapRoute(
name: "signin-oidc",
url: "signin-oidc",
defaults: new { controller = "Account", action = "ExternalLoginCallback" });