【问题标题】:wcf authentication and encryptionwcf 身份验证和加密
【发布时间】:2011-06-01 00:55:22
【问题描述】:

我创建了一个 wcf 服务,它以字节 [] 的形式提供图像。我让它运行良好,但我对服务中的身份验证和加密没有那么丰富的经验。客户将在他们的网站上显示图像。他们要求用户名和密码身份验证以及某种形式的加密,但如果有一个更简单的选项可以很好地工作,他们似乎很灵活。他们只会在调用中发送几个参数,

我一直在模拟this 之后的尝试,但从我在 wcf 中看到的情况来看,如果你这样做,它必须在 SSL 层之上,因为纯文本肥皂头没有加密包含用户名和密码。除非有必要,否则我宁愿不走 SSL 路线。

我读到我可以使用negotiateServiceCredential="false" 进行单向通信,但我不确定我正在寻找一种一次性安全模式。我似乎找不到足够相似的教程或场景示例。

【问题讨论】:

    标签: wcf-security


    【解决方案1】:

    如果有人感兴趣...我正在使用this guy 的解决方案来模拟链接,它似乎工作得很好。

    基本上,在阅读了这里的一些其他帖子后,我打开了this book。我在哪里了解了更多关于这些服务的一般设置方式。我决定通过为消息安全创建自己的验证器类来进行用户名和密码身份验证。这个标签对我来说有点棘手(在 web.config 中),但有很多东西可以了解更多信息:

    <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="YourService.MyValidator, YourService" />
    

    如果您将用户名用于消息安全,WCF 要求您使用证书(在本例中为 SSL)来保护传输。这是因为凭证是以纯文本形式传递的。优点是 SSL 硬件加速器允许快速消息传输,我正在尝试将大文件传输到客户端。

    我链接到的解决方案对于像我这样的新手来说是一个很好的演练。一个非常有用的部分是学习如何使用MakeCert 制作用于测试目的的临时证书。只需在 cmd 中运行:

    makecert -r -pe -n "CN= compaq-jzp37md0 " -b 01/01/2000 
    -e 01/01/2050 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr 
    localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12
    

    其中“compaq-jzp37md0”是服务器名称,因此您需要替换为您的 PC 名称

    【讨论】:

    • 如果你能在你的答案中加入一些细节,除了链接,那么我会给你一个赞成票。这些信息可能对其他人有用。如果你不想这样做,那没关系。 :)
    • 希望能帮助别人
    猜你喜欢
    • 2011-11-09
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多