正如评论中所述,您应该在您的问题中添加更多信息。你的控制器是身份服务器的mvc应用程序的一部分?你使用AspnetCore.Identity吗?
如果是这样,您的控制器受到AspnetCore.Identities的Cookie认证方案的保护。你需要发送cookie来访问控制器。这与身份服务器无关,因为您在本地MVC应用程序中,它只是普通的vanilla MVC。
邮差有问题发送cookie,你需要interceptor chrome extension。你也需要通过邮递员登录。
如果SPA由相同的MVC应用程序托管,这可能会起作用。如果没有,你需要配置你的MVC应用程序,以验证访问令牌(不只是发给他们),像这样:
// Adds IdentityServer
app.UseIdentityServer();
// Accept access tokens from identity server
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = "http://localhost:5000",
RequireHttpsMetadata = false,
AuthenticationScheme = "Bearer"
ApiName = "api1"
});
这样,您就可以请求访问令牌通过身份服务器的本地API,(你还需要为'api1'配置一个api作用域)。
为了验证他们在您的API控制器添加到您的控制器:
[Authorize(ActiveAuthenticationSchemes = "Bearer")]
[HttpGet]
public string Bearer()
{
return "Access Token Accepted";
}
您应该显示相关的代码。请参阅:https://stackoverflow.com/help/how-to-ask具体来说:https://stackoverflow.com/help/mcve – jdv