У меня проблема с моей основной веб-службой ASP.NET.
Мне понадобился JWT для аутентификации в моем проекте Angular.Вот почему я сделал сервис, где пользователь должен быть проверен, если он авторизован.Я сделал это с .NET Core, потому что у меня есть IIS Server.
Когда я запускаю его локально с помощью "dotnet run", я могу делать запросы get или put локально.Я также проверил это в плагине YARC Google Chrome, сделав запрос POST с полезной нагрузкой (JSON с 2 парами ключ-значение).
Я загрузил службу в IIS Server, запустил ее, дал URL (на этот раз с доменом сервера, на котором расположен IIS) на плагине YARC на моей локальной машине снова для запроса POST с той же полезной нагрузкой.Это дает мне 404-Not Found Error.
Функциональный локальный URL-адрес: http://localhost:5000/api/auth/login
URL-адрес для IIS: http://myIISMachine:7471/api/auth/login (номер порта также указан в файле launchSettings.json)
ConfigureServicesфункция в моем файле Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = "http://localhost:5000",
ValidAudience = "http://localhost:5000",
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("MySecretKey"))
};
});
services.AddCors(options =>
{
options.AddPolicy("EnableCORS", builder =>
{
builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().AllowCredentials().Build();
});
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
и настройка функции:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}
app.UseCors("EnableCORS");
app.UseAuthentication();
//app.UseHttpsRedirection();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "api/{controller=Home}/{action=Index}/{id?}");
});
}
файл launchSettings.json:
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:7471",
"sslPort": 44365
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"webapplication": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "api/values",
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Что я делаю здесь неправильно?Или, может быть, это связано с настройками сервера IIS?Не могли бы вы помочь мне, пожалуйста?