【发布时间】:2011-03-27 14:16:57
【问题描述】:
我正在尝试在 WCF RequestInterceptor 中进行一些基本身份验证。我使用this article 作为开始。
我遇到的问题是拦截器和服务之间的通信。我尝试过的任何方法似乎都不起作用。到目前为止,我已经尝试过:
- OperationContext.Current
- requestContext.RequestMessage.Properties[HttpRequestMessageProperty.Name]["foo"] = value
- HttpContext.Current.Request
但是无论我设置什么,我似乎都无法在服务行为本身中访问它:
[AspNetCompatibilityRequirements( RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed )]
[ServiceBehavior( InstanceContextMode = InstanceContextMode.Single )]
public class AdvertiserService : ApiServiceBase<AdvertiserDataAccessor>, IAdvertiserService
{
[WebGet( UriTemplate = "" )]
public List<Advertiser> GetAdvertisers()
{
var request = HttpContext.Current.Request;
var headers = HttpContext.Current.Request.Headers;
var p = HttpContext.Current.Request.Headers["Principal"];
OperationContext ctx = OperationContext.Current;
}
}
我的问题是:
如何在拦截器和服务之间传递数据?
是否有规范的方式在它们之间传递身份验证信息(注意,身份验证信息是数据库中的 UID,而不是 Windows 身份)?
谢谢
【问题讨论】:
标签: authentication rest wcf wcf-security