WCF4 REST APIkey问题 - 将ServiceAuthorizationManager中的信息传递给服务

时间:2011-06-30 12:07:22

标签: wcf restful-authentication api-key

我想为我的WCF4 REST API实现API密钥身份验证解决方案。

我知道我需要创建一个类并从ServiceAuthorizationManager派生它并覆盖CheckAccessCore方法。所有我理解的。

但我想从CheckAccessCore做的事情将CheckAccessCore的内部信息传递给我的Service实现类。我在进行ApiKey身份验证时查找的信息,如“ApiKeyID,权限,标志和其他详细信息”。

因此,我的服务在内部调用域逻辑时可以使用内部ApiKeyID。

我已经看到了许多不同的方法,比如

operationContext.ServiceSecurityContext.AuthorizationContext.Properties["Principal"] = p;

System.Threading.Thread.CurrentPrincipal = principal;
HttpContext.Current.User = principal;

和其他方式......

1 个答案:

答案 0 :(得分:0)

您可以传递对象的另一种方法是将对象添加到RequestMessage对象的Properties Collection中。

IssuedToken Token = new IssuedToken() 
operationContext.RequestContext.RequestMessage.Properties.Add("NameOfObj",Token);