正如評論中所述,您應該在您的問題中添加更多信息。你的控制器是身份服務器的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