【发布时间】:2011-02-25 22:18:04
【问题描述】:
我会做一个小项目(WCF + REST),但我有一个小问题。我想做我的授权和身份验证类。
我的授权类:
//validate api key
public class BasicAuthorization : ServiceAuthorizationManager
{
public override bool CheckAccess(OperationContext operationContext,
ref Message message)
{
//some code
}
}
我的身份验证类
// validation user login & password
public class BasicAuthentication : ServiceAuthenticationManager
{
public override ReadOnlyCollection<IAuthorizationPolicy> Authenticate(
ReadOnlyCollection<IAuthorizationPolicy> authPolicy, Uri listenUri,
ref Message message)
{
//some code
}
}
我有太多配置文件
<behavior>
<serviceAuthorization
serviceAuthorizationManagerType="WCF.BasicAuthorization, WCF"/>
<serviceAuthenticationManager
serviceAuthenticationManagerType="WCF.BasicAuthentication, WCF"/>
</behavior>
类中的代码不重要——不是问题。
我的问题是如何从 operationContext 或消息类中获取标头。我之前怎么说,我是在休息时做的,所以我想要手动设置 Authorizaion 标头/www-authenticate 标头,但应用程序看不到它。
我打开 Fiddler2,然后尝试放置任何标题,例如:
Content-Type: application/xml
Authorization: Basic bla23rwerfsd3==
User-Agent: Fiddler
Host: localhost:59305
而且message.Headers / operationContext.Headers没有任何我的头(只有另外一个),没有Authorization,没有Content-Type
【问题讨论】:
-
我也有同样的问题。你找到解决这个问题的办法了吗?