c# – WCF:Web服务登录/身份验证:如何?

我们有一个Web服务(C#中的WCF),到目前为止一直在内部网上使用.展望未来,我们希望将其打开到互联网上.
显然我们担心顽皮的人无法访问界面.在WCF中确保这一点的最佳实践方法是什么?是WSS吗?
我假设某种登录界面和返回的令牌,客户端必须在每次通话时使用?

解决方法:

你基本上有六个选择:

> Windows帐户 – 在Intranet中很棒,在Internet方案中不是很好(内置,仅配置)
>针对ASP.NET成员系统的用户名/密码:您仍需要保留有效用户的数据库;取决于你想做什么,这可能适合你(内置,仅配置 – 你需要跟踪你的用户群)
>客户端计算机上的证书调用:只允许那些拥有正确证书的计算机;非常适合封闭的用户群,在一般的面向互联网的情况下不是很好(内置,仅配置)
>某种必需的标题 – 要么针对数据库进行检查(例如“有效的标题标记”),要么仅通过例如检查.计算校验和或其他东西 – 任何知道你的“秘密”标题的人都可以调用(内置,需要一点点编码来提取和检查标题)
>一些自定义解决方案 – 您可以定义自己的身份验证/授权方案,并根据自己的喜好进行自定义;需要一些代码 – 但为您提供最大的灵活性(您的自定义代码)
>不检查 – 只对任何人开放(内置,仅配置)

WCF guru extraordinaire,Juval Lowy,在MSDN杂志上有一篇很棒的文章:Declarative WCF Security – 也许这可以给你一些额外的提示和指示.他基本上定义了五个场景,并讨论了他为每个场景推荐的解决方案(并将这些内容融入现成的,基于属性的声明性框架)

上一篇:自动提交Git branch代码评审到Review Board系统


下一篇:近期一些超值文章及工具收集