我想阻止用户从后端API调用访问内容,这会得到一些用户(这样,如果他们写的URL,阻止用户访问),但要访问时,前端调用后端。我在IIS中托管应用程序,我使用C#作为后端,使用Angular作为前端。
8cdiaqws1#
您可以通过在调用中包含一个简单的Guid令牌来实现这一点。在web.config应用程序设置部分中指定标记。
<appSettings> <add key="ValidToken" value="12345678-1234-1234-1234-123456789012" /> </appSettings>
字符串然后在API方法中:
public HttpResponseMessage yourcall(string token) { var validToken = ConfigurationManager.AppSettings["ValidToken"]; if(validToken != token) return null; //or do something else .... }
型编辑:很抱歉重读了你的问题,上面的可能不合适,因为电话来自客户端。正如奥利弗提到的,有关呼叫的信息将在网络选项卡中可见。这在呼叫较少暴露(即,应用程序之间)。
wj8zmpe12#
public class BasicAuthenticationAttribute : AuthorizationFilterAttribute { public override void OnAuthorization(HttpActionContext actionContext) { string eid = RequestDataProvider.GetValue(HttpContext.Current, TypeOfData.UserName); if (actionContext.Request.Headers.Referrer != null) { Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(eid), null); } else { actionContext.Response = actionContext.Request .CreateResponse(HttpStatusCode.OK, "Please use proper media to get response.", JsonMediaTypeFormatter.DefaultMediaType); } } }
字符串
2条答案
按热度按时间8cdiaqws1#
您可以通过在调用中包含一个简单的Guid令牌来实现这一点。
在web.config应用程序设置部分中指定标记。
字符串
然后在API方法中:
型
编辑:很抱歉重读了你的问题,上面的可能不合适,因为电话来自客户端。正如奥利弗提到的,有关呼叫的信息将在网络选项卡中可见。这在呼叫较少暴露(即,应用程序之间)。
wj8zmpe12#
字符串