gpt4 book ai didi

asp.net - wcf 使用 basichttpBinding 的用户名和密码安全性——基于消息

转载 作者:行者123 更新时间:2023-12-04 18:24:16 25 4
gpt4 key购买 nike

我用 ServiceContract 创建了一个接口(interface)在界面和 OperationContract在它的所有方法上。我在一个类中实现了这个接口(interface),然后在我的 asp.net 网站中添加了 wcf 服务,它创建了一个 svc 文件(因为我想用我的网站在 IIS 中托管它)。现在该服务已启动并可通过 http://localhost:8732/webui/webservice/camservice.svc 访问.现在我想为此服务启用用户名和密码身份验证。我想svc使用 basicHttpBinding因为我不必在 web.config 中进行任何配置即可使其运行。现在如何在此服务上启用用户名/密码身份验证?互联网上有很多文章,但我相信,wcf 安全性是如此巨大,以至于我无法使用我使用的方法对用户名/密码身份验证进行集中解释。我正在使用 .net 4.0 与 2010

编辑:好的,我已经把问题缩小了一点。我相信,消息级别的安全性是我所需要的

<security mode="Message">
<message clientCredentialType="Certificate" />
</security>

我本可以选择 SSL,但为此,我必须为每个服务调用去 db 并验证用户。我更喜欢的是该服务为具有有效证书的客户提供服务。我从 this article 得到了很多信息.它没有解释的是如何在客户端和服务器上设置 x509 证书,以及如何控制只有我的客户端才能获得有效证书。

最佳答案

如果你想在没有 SSL 的情况下实现用户名密码验证,你可以使用一个叫做 ClearUsernameBinding 的东西。这允许您通过 http 传输用户名/密码。

注意 :仅当您的服务位于公司防火墙之后,该防火墙为托管您的服务的服务器提供足够的安全性时,才使用此选项。

在使用 2 路 SSL 方面,您需要在您的服务器上安装由受信任的机构颁发的服务证书 .pfx 或本地计算机帐户的个人存储文件夹下的自签名证书。

然后对于客户端证书,您需要请求客户端发送一个 .cer 文件并将其安装在您的服务器上的本地计算机帐户的 Trusted People 存储文件夹下。

在客户端计算机上,您需要在当前用户的个人存储文件夹下安装客户端证书 .pfx。

注意:在您的服务器上使用自签名证书时,您的客户端通过代码执行对您的网络服务的调用需要具有以下代码,以绕过自签名证书出现的安全异常:

    System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) =>
{
return true;
};

关于asp.net - wcf 使用 basichttpBinding 的用户名和密码安全性——基于消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10023497/

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