我想通过证书添加一层安全性来访问托管的 asp.net webapi。
我希望只有那些在他们的机器上安装了证书的客户才能访问那个 webapi。
任何人都可以为我提供一种实现这种行为的方法。示例或视频将不胜感激。
我想通过证书添加一层安全性来访问托管的 asp.net webapi。
我希望只有那些在他们的机器上安装了证书的客户才能访问那个 webapi。
任何人都可以为我提供一种实现这种行为的方法。示例或视频将不胜感激。
正如评论中所建议的那样,快速的谷歌搜索可能会导致有趣的结果。
然而,一个可能的解决方案是以下 Microsoft 文章中提出的实现:
public class RequireHttpsAttribute : AuthorizationFilterAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
{
actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
{
ReasonPhrase = "HTTPS Required"
};
}
else
{
base.OnAuthorization(actionContext);
}
}
}
然后,您将装饰您的 ApiController 操作:
public class SomeController : ApiController
{
[RequireHttps]
public HttpResponseMessage Get() { ... }
}