我有一个启用了ajax的WCF服务来处理第三方用户请求。服务类中有大量的方法。每个方法的请求结构都是一个JSON,并且有两个"子对象" - 标题和属性。所有方法的标题都是相同的。属性可以具有不同的结构(取决于每种方法的需要)。
像这样:
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service
{
[OperationContract]
[WebInvoke(ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, Method = "POST")]
public JSONResponseGetList GetList(JSONRequestGetList data)
{
//check if the data.header.securityToken is valid
}
..
..
这是 JSONRequestGetList :
public class JSONRequestGetList
{
public class AttributesClass
{
public Int64 timeStamp { get; set; }
public int maxCount { get; set; }
}
public ModelRequestHeader header { get; set; }
public AttributesClass attributes{ get; set; }
}
..这里是 ModelRequestHeader ,对于所有类型的请求都是一样的:
public class ModelRequestHeader
{
public string version { get; set; }
public string securityToken { get; set; }
}
现在我的问题 - 我在每个检查 securityToken 是否有效的方法中都有重复的代码。相同的" IF"在每种方法中。有没有办法以某种方式拦截" Header"每个请求的结构我的"服务"在一个地方上课并且可能以某种方式装饰我的方法(例如类似于WebAPI中的[Authorize]或[AllowAnonymous]),所以它会自动进入方法内部或返回401 Unauthorized?
非常感谢
答案 0 :(得分:1)