如何使用ServiceStack.Net实现客户端身份验证

问题描述:

我正在使用servicestack.net库开发Web服务。如何使用ServiceStack.Net实现客户端身份验证

在我的方案中,将从WPF应用程序调用Web服务。我需要验证只有经过批准的客户端应用程序调用我的服务的能力。

这是否像在客户端应用程序中硬编码“用户名”和“密码”一样简单?这当然不是合适的方法。有没有更好的办法?

编辑 此外,在客户端,用户自己就能使用用户名/密码登录,并开始对服务的请求(不知道这影响任何东西,所以我想我会提到它) ,

想直接从供应商ServiceStack see this question获得认证的产品组合和价格。

通常情况下,您会认证用户,而不是您似乎正在做的客户。但是,如果你试图锁定服务,以便他们只能通过一组特定的客户端进行访问,则应该考虑在客户端和服务器中使用一些PKI。

基本上是这样的:客户端在登录时使用加密版本的用户:密码和嵌入在应用中的私钥一起发送附加令牌。服务器具有客户端公钥,因此会在登录时执行额外的验证步骤以解密用户:传递令牌并将其与验证的用户凭证进行比较。

如果一个PKI解决方案太重,不使用加密的替代策略可能是客户端发送一个秘密Guid,当他们登录时,它将发送Guid的MD5哈希版本和当前时间,以及时间的未经过版本处理的版本。如果时间在指定的阈值内并且MD5散列有效,那么它们使用经过验证的客户端。

+0

谢谢。就目前而言,我认为沿着哈希指令的方向就足够了。 Love ServiceStack btw! – stephen776