【发布时间】:2018-07-24 23:47:38
【问题描述】:
我必须创建一个供第 3 方使用的端点。当人们登录我们的应用程序时,我们使用身份服务器。我需要做什么才能只允许访问此第 3 方来呼叫端点?我不希望任何人都能够调用端点。 例如,如果我给你我的端点 URL,而你使用邮递员发帖,我只会在你被授权的情况下允许你
【问题讨论】:
-
您是否启用了 CORS?
标签: c# asp.net-web-api identityserver3
我必须创建一个供第 3 方使用的端点。当人们登录我们的应用程序时,我们使用身份服务器。我需要做什么才能只允许访问此第 3 方来呼叫端点?我不希望任何人都能够调用端点。 例如,如果我给你我的端点 URL,而你使用邮递员发帖,我只会在你被授权的情况下允许你
【问题讨论】:
标签: c# asp.net-web-api identityserver3
有多种方法可以保护 ASP.NET Web 应用程序/api。
我通常使用 SQL 用户存储或活动目录并发布 JWT 令牌。可以在这里找到一个很好的指南。
https://jonhilton.net/2017/10/11/secure-your-asp.net-core-2.0-api-part-1---issuing-a-jwt/
这是身份服务器的文档——正如你提到的你想使用它——关于这个主题。
【讨论】:
我认为您需要将 CORS(跨域请求)启用为 outlined by Microsoft here。
例如,你可以这样装饰你的控制器:
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Cors;
namespace WebService.Controllers
{
[EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
public class TestController : ApiController
{
// Controller methods not shown...
}
}
【讨论】: