我正在构建一个自托管的WCF服务,该服务为每个服务公开了2个端点:
- SOAP
- REST
SOAP使用WS-* SOAP身份验证(身份验证标头)如何实现REST身份验证?
我考虑过一种登录方法,该方法将返回某种类型的cookie,但我无法想出如何使其对我所有其他调用透明。
谢谢。
RESTful系统中的请求是无状态的,因此您需要在每个请求上重新验证身份。
我建议您使用HTTP基本认证,如果这对您的情况不足够,则可以在HTTPS上执行HTTP基本认证。
[DataContract]
public sealed class AuthenticatedRequest<T> {
[DataMember(Order=0)]
public string SessionToken {get; set;}
[DataMember(Order=1)]
public T RequestBody {get; set; }
public static bool IsAuthenticated () {
. . .
}
}
好的,在查找了一番后,我找到了答案,我正在传递一个类似于Amazon S3的特殊身份验证标头。
构建起来并不简单,但它将允许我在没有SSL的情况下工作,并且将是无状态的并支持所有客户端。