.net 避免为每个web调用设置客户端凭据
我现在正在使用安全性,我必须在web调用之前设置ClientCredentials 这是一件重复的事情,因为我有很多web调用总是传递相同的东西.net 避免为每个web调用设置客户端凭据,.net,wcf,web-services,.net,Wcf,Web Services,我现在正在使用安全性,我必须在web调用之前设置ClientCredentials 这是一件重复的事情,因为我有很多web调用总是传递相同的东西 什么是一个好的模式来避免这样的事情?好的模式是在授权后将会话令牌从服务发送到客户端,然后在每次调用时发送它,而不是使用凭据。好的模式是在授权后将会话令牌从服务发送到客户端,然后在每次调用时发送它,而不是使用凭据凭据。WCF实现WS-SecureConversation。这允许客户端只传递一次凭据,随后的调用将自动使用客户端和服务之间的安全会话握手生成的
什么是一个好的模式来避免这样的事情?好的模式是在授权后将会话令牌从服务发送到客户端,然后在每次调用时发送它,而不是使用凭据。好的模式是在授权后将会话令牌从服务发送到客户端,然后在每次调用时发送它,而不是使用凭据凭据。WCF实现WS-SecureConversation。这允许客户端只传递一次凭据,随后的调用将自动使用客户端和服务之间的安全会话握手生成的安全令牌。在WCF中,这称为安全上下文或安全会话,通常在
wsHttpBinding
中默认打开。使用安全上下文时,必须遵循基本规则:
- 您的服务将成为每个会话的实例,因此它是长期存在的服务实例,您必须处理与会话过期等相关的所有缺点和问题
- 安全会话是在单个客户端代理实例和服务实例之间创建的,因此仅当您使用同一个代理时,安全会话才有效。如果创建新代理,则必须再次发送凭据以启动安全对话
- 由于正在建立安全上下文,对服务的第一次调用速度较慢
可能更容易创建一些用于调用web服务的包装器,这些包装器将设置用户名和密码。WCF实现WS-SecureConversation。这允许客户端只传递一次凭据,随后的调用将自动使用客户端和服务之间的安全会话握手生成的安全令牌。在WCF中,这称为安全上下文或安全会话,通常在
wsHttpBinding
中默认打开。使用安全上下文时,必须遵循基本规则:
- 您的服务将成为每个会话的实例,因此它是长期存在的服务实例,您必须处理与会话过期等相关的所有缺点和问题
- 安全会话是在单个客户端代理实例和服务实例之间创建的,因此仅当您使用同一个代理时,安全会话才有效。如果创建新代理,则必须再次发送凭据以启动安全对话
- 由于正在建立安全上下文,对服务的第一次调用速度较慢
创建一些用于调用web服务的包装器可能会更容易,这些包装器将设置用户名和密码。知道一篇文章演示了这一点吗?@zachary我们以非常简单的方式完成了。我们所有的数据契约都是从某个具有该标记的类派生的。再加上将返回该令牌的身份验证操作。为了进一步澄清,通常会有一个登录和注销方法,登录将返回该令牌。知道一篇文章吗?@zachary我们以非常简单的方式做了。我们所有的数据契约都是从某个具有该标记的类派生的。另外,添加将返回该令牌的身份验证操作。为了进一步澄清,通常会有一个登录和注销方法,登录将返回该令牌。