2012-01-30 116 views
0

我们公司有2台面向公众的互联网服务器。 (serverA.mycompany.com & serverB.myCompany.com)asp.net webservices认证/授权

我们在其中一台暴露于互联网的服务器上托管一个asp.net Web服务(.asmx)。我们需要进行身份验证/授权(不使用密码/ Windows身份验证),并且只允许来自“* .myCompany.com”的请求。

不幸的是,机器的IP地址不是静态的。在6个月左右。所以基于IP的访问不是我们的解决方案。

请帮我允许只有来自请求“* .myCompany.com”

回答

1

你可以不知道是谁的客户正是基于它的主机名。您需要让客户端进行身份验证(通过SSL,以确保安全),或者至少需要登录他们发送的内容。

如果你对“签约”古玩,我在回答中此处描述它在一个简单的例子:C# app should send some data to php website but should respect auth policies

如果你可以设置SSL证书上的ASMX侧,甚至硬编码的东西“的秘密“(例如密码,在两个应用程序之间保持安全和保密)就可以实现。

否则,也许你可以让asmx查询DNS获取客户端的IP地址,然后与传入的请求进行比较。这意味着,您无法在IIS级别限制IP - 您必须使用asmx进行验证。您可以在首次请求时执行一次此操作,然后将其保留在内存中,直到停止工作(或直到它变得不同),然后再次查询DNS。也许甚至可以将这个IP保持在更永久的地方(如数据库),因为IP不会经常更改。