我正在创建一个WCF RESTful服务,该服务将通过在HTTP标头中传递外部获取的身份验证令牌来加以保护。总之,序列非常类似:
所以,我的问题是在WCF / .NET中执行此操作的最佳方法是什么?我当然可以在我的REST方法中手工制作认证/授权检查,即
public void DoSomething(string input)
{
if (Authed())
{
...Do DoSomething...
}
else
{
throw new FaultException<MyFault>(new MyFault("Not today, thanks"));
}
}
public bool Authed()
{
string rawUserAuthToken = WebOperationContext.Current.IncomingRequest.Headers["MyCustomHttpHeader"];
...Do the magic needed to verify and Authorise the incoming token...
return result;
}
但是,我确信在WCF中有更优雅的方法可以实现这一目标。做了一点谷歌搜索后,我遇到了SecurityTokenAuthenticator,但它似乎不适合我的需要。
那么,有什么建议吗?
编辑:这里的关键因素是解决方案必须是跨系统/语言中立的,客户端将基于几乎所有可以想象的技术堆栈,因此他们不能只是添加服务参考&#34; 34;由于