gpt4 book ai didi

c# - asmx 网络服务 : client authentication

转载 作者:太空狗 更新时间:2023-10-29 17:45:38 25 4
gpt4 key购买 nike

我有一个 Web 服务,其中包含一些我想稍微保护一下的方法。数据并不是真的那么 secret ,但我仍然想只允许那些使用存储在网络服务 web.config 文件中的特定用户 ID 和密码的人访问。 C# Windows 服务客户端将每天或每周调用一次此 Web 服务。

任何人都可以发布一个简单的例子来说明我如何做到这一点吗?提前致谢。

最佳答案

这与我的问题非常相似:"What should we implement to authorize clients to use our web service?"

我们最终没有发布 WSDL,仅通过 https 提供服务并要求 basic authentication .如果您不能强制所有客户端都使用 https,请不要使用基本身份验证。

如果这是一个 .net 网络服务,那么这里是防止 wsdl 被发布的配置文件条目。

  <system.web>
<webServices>
<protocols>
<remove name="Documentation" />
</protocols>
</webServices>
</system.web>

当您转到该页面时,您将收到一条错误消息,类似于您尝试从站点手动拉下 web.config 时收到的消息。正如 Steven 指出的那样,这是通过模糊实现的安全,不应单独使用来保护您的网络服务。但是,当与基本身份验证 + https 一起使用时,这是一个不错的额外功能。

客户端代码:

要从客户端访问此 Web 服务,请以正常方式在调用代码中添加您的 Web 引用(假设您的 Web 引用名为 WebRef)。

WebRef.Url = "url";
WebRef.Credentials = new System.Net.NetworkCredential("userid", "password");

此外,您可能希望查看 WebRef.PreAuthenticate 以节省一些往返行程。请注意,如果您使用公司代理,您将有一段有趣的时间来测试它。代理通过 WebRef 使用

WebRef.Proxy = new WebProxy("url");
WebRef.Proxy.Credentials = new System.Net.NetworkCredential("userid", "password");

关于c# - asmx 网络服务 : client authentication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1092404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com