【发布时间】:2014-08-22 00:26:21
【问题描述】:
我有一个这样的自定义授权属性:
public class AuthorizeApplicationAttribute : AuthorizeAttribute {
private MainServiceSoapClient client;
public AuthorizeApplicationAttribute() {
this.client = new MainServiceSoapClient();
}
public AuthorizeApplicationAttribute(MainServiceSoapClient client) {
this.client = client;
}
protected override bool IsAuthorized(HttpActionContext actionContext) {
if (!base.IsAuthorized(actionContext)) return false;
var currentUser = System.Web.Security.Membership.GetUser();
if (currentUser == null) return false;
var userId = (int)currentUser.ProviderUserKey;
return client.HasPermission(userId);
}
}
我在WebApiConfig 注册为:
public class WebApiConfig {
public static void Register(HttpConfiguration config) {
// Web API configuration and services
config.Filters.Add(new AuthorizeApplicationAttribute());
// more configuration ...
}
}
但是AuthorizeAttribute没有dispose,我可以用soap客户端实例调用构造函数,但是我不确定在哪里dispose。
仅供参考:我没有使用 IoC 容器。正在尝试学习如何手动制作。
此示例使用 SoapClient,但我对 DbContext 也有同样的问题,而我可以不处理 DbContext 并且不认为不处理 WCF 客户端会那么好。
【问题讨论】:
标签: c# wcf asp.net-web-api