我的ASP.NET Core Web服务有问题。
我在Angular项目中需要JWT进行身份验证。这就是为什么我提供了一项服务,需要检查用户是否被授权。我使用.NET Core制作,因为我有IIS服务器。
当我使用“ dotnet run”在本地运行它时,我可以在本地发出get或put请求。我还通过使用Payload(带有2个键值对的JSON)发出POST请求,也在Google Chrome的YARC插件中对其进行了测试。
我将服务上载到IIS服务器中,启动了该服务,并再次在本地机器中的YARC插件上提供了URL(这次是IIS所在的服务器的域),以进行具有相同负载的POST请求。它给了我404- Not Found错误。
功能性本地网址为:http://localhost:5000/api/auth/login
IIS的URL:http://myIISMachine:7471/api/auth/login(端口号也位于launchSettings.json文件中)
我的Startup.cs文件中的ConfigureServices函数:
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服务器中的设置有关?你能帮我吗?