iis 如何阻止通过URL访问API后端,而不阻止它从应用程序?

mmvthczy  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(213)

我想阻止用户从后端API调用访问内容,这会得到一些用户(这样,如果他们写的URL,阻止用户访问),但要访问时,前端调用后端。我在IIS中托管应用程序,我使用C#作为后端,使用Angular作为前端。

8cdiaqws

8cdiaqws1#

您可以通过在调用中包含一个简单的Guid令牌来实现这一点。
在web.config应用程序设置部分中指定标记。

  1. <appSettings>
  2. <add key="ValidToken" value="12345678-1234-1234-1234-123456789012" />
  3. </appSettings>

字符串
然后在API方法中:

  1. public HttpResponseMessage yourcall(string token)
  2. {
  3. var validToken = ConfigurationManager.AppSettings["ValidToken"];
  4. if(validToken != token) return null; //or do something else
  5. ....
  6. }


编辑:很抱歉重读了你的问题,上面的可能不合适,因为电话来自客户端。正如奥利弗提到的,有关呼叫的信息将在网络选项卡中可见。这在呼叫较少暴露(即,应用程序之间)。

展开查看全部
wj8zmpe1

wj8zmpe12#

  1. public class BasicAuthenticationAttribute : AuthorizationFilterAttribute
  2. {
  3. public override void OnAuthorization(HttpActionContext actionContext)
  4. {
  5. string eid = RequestDataProvider.GetValue(HttpContext.Current, TypeOfData.UserName);
  6. if (actionContext.Request.Headers.Referrer != null)
  7. {
  8. Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(eid), null);
  9. }
  10. else
  11. {
  12. actionContext.Response = actionContext.Request
  13. .CreateResponse(HttpStatusCode.OK, "Please use proper media to get response.", JsonMediaTypeFormatter.DefaultMediaType);
  14. }
  15. }
  16. }

字符串

展开查看全部

相关问题