У меня есть сервер Docker Linux (под управлением Ubutnu 18) с контейнером Identity Server и приложение mvc в контейнере из одного из быстрых запусков, которое выполняет поток hybrid
. Однако, когда оба этих контейнера работают, я получаю IDX20803 Socket IO Exception
. Кажется, что независимо от того, что я изменяю свойство authority
, оно не работает.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews().AddRazorRuntimeCompilation();
JwtSecurityTokenHandler.DefaultMapInboundClaims = false;
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies")
.AddOpenIdConnect("oidc", options =>
{
//options.SignInScheme = "Cookies";
options.Authority = "http://mylinuxserver.co.uk:8888"; // ids on p:8888
options.RequireHttpsMetadata = false;
options.ClientId = "mvc";
options.ClientSecret = "secret";
options.ResponseType = "code id_token";
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.Scope.Add("web_api");
});
}
Если вы запускаете приложение mvc в контейнере локально и указываете authority
на http://mylinuxserver.co.uk:8888
с запущенными на сервере идентификаторами, редирект работает. Если вы запускаете mvc и ids в контейнерах локально, это работает, если вы используете ip своего хоста, а не localhost
.
Я не понимаю, в чем проблема, потому что я всегда указывал authority
на тот же URL-адрес, и он работал в пас с apis, когда оба работали на моем Linux сервере.
РЕДАКТИРОВАТЬ
Опции сервера идентификации:
options.IssuerUri = "http://mylinuxserver.co.uk:8888";
options.PublicOrigin = "http://mylinuxserver.co.uk:8888";