通过IP安全.Net API调用

时间:2017-05-06 19:08:31

标签: asp.net-web-api

API世界非常新鲜。

情景:

服务器1运行一个Web应用程序,该应用程序显示一个网页,其中包含从服务器2调用的信息。

服务器2运行一个api服务,只应答服务器1

ISSUE:

用户访问服务器1,并在控制器中调用服务器2.

//服务器1

 public class IndexController : Controller
    {
     private WebProfile GetProfile(string id)
            {
      var client = new HttpClient();

                var builder = new UriBuilder(string.Format("{0}{1}", baseMapUrl, "/Profile"));
    builder.Port = 17608;
                var query = HttpUtility.ParseQueryString(builder.Query);
                query["pId"] = id;
                builder.Query = query.ToString();
                string url = builder.ToString();

                client.BaseAddress = builder.Uri;
                //client.BaseAddress = new Uri(url);
                var response = client.GetAsync("?pId=" + id);

                while (response.Status==TaskStatus.WaitingForActivation)
                {
                    //wait until my status changes
                    var a = response.Status;
                }
    var result = response.Result.Content.ReadAsStringAsync();
    //do more stuff...
    }
}

// Server 2

[HttpGet]
 public class ProfileController : ApiController
    {
public Profile Get(string id)
        {
 var profile = new WebProfile();
//Go and do stuff, get data and return 
return profile;
}

因此,我在服务器2上创建了一个防火墙策略,仅接受来自端口17608上的服务器1(IP)的连接。 但是经过测试,没有流量通过服务器2,因为呼叫(IP)不是服务器1的IP地址,它是访问服务器1的用户的IP ....

我做错了什么? 如何解决此问题,因为服务器2应该只接受来自服务器1的IP的呼叫?

0 个答案:

没有答案