asp.net-mvc-3 – 自定义成员资格提供程序和统一依赖注入
我发现了一些与我发布的问题类似的问题,但我并没有从他们那里得到我真正需要的东西.
我仍在努力使用Microsoft Unity DI来实现我的CustomMembershipProvider. 定制会员: public class CustomMembershipProviderService : MembershipProvider { private readonly IUserService _userService; public CustomMembershipProviderService(IUserService userService) { this._userService = userService; } public override string ApplicationName { ... 用户服务: public class UserService : IUserService { private readonly IUserRepository _repository; private readonly IUnitOfWork _unitOfWork; public UserService(IUserRepository repository,IUnitOfWork unitOfWork) { this._repository = repository; this._unitOfWork = unitOfWork; } ... 的AccountController: public class AccountController : Controller { // next line is what I don't feel too sure about what to do? // shouldn't my controller constructor use an Interface as its property? private readonly CustomMembershipProviderService _customMembershipProviderService; public AccountController(CustomMembershipProviderService customMembershipProviderService) { this._customMembershipProviderService = customMembershipProviderService; } ... 如何为MembershipProvider类创建接口? 我试过了: public interface ICustomMembershipProvider : MembershipProvider 但我觉得这不行,所以我卡住了,不知道如何使用我的存储库,UoW,服务和Unity DI实现MembershipProvider 解决方法
回答第二个问题
MembershipProvider和RoleProvider的问题在于它们不是由容器构建的,而是由框架构建的. AFAIK设置活动成员资格提供程序的唯一方法是web.config文件. public class CustomMebershipProvider : ICustomMebershipProvider { public bool ValidateUser(string user,string pwd) { var svc = Global.Container.Resolve<IMyService>(); /* ... */ } } 对第一个问题 您仍然可以使用Constructor Injection在控制器中注入活动成员资格提供程序. public interface ICustomMembershipProvider { bool MyMethod(); /* From MembershipProvider */ bool ValidateUser(string username,string password); /* ... */ } 然后让你的提供者实现它并注入: Container .RegisterType<ICustomMembershipProvider>( new InjectionFactory(c => (ICustomMembershipProvider) Membership.Provider)) 当然,您仍然需要在web.config中注册自定义成员资格提供程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 将Angular与MVC 5捆绑在一起后出现格式错误
- asp.net-mvc – MVC处理程序,用于未知数量的可选参数
- asp.net-mvc – .NET 4.5 MVC RouteCollection.LowercaseUr
- asp.net-mvc – 如何使用asp.net mvc razor在视图中访问全局
- asp.net – 不引人注目的Javascript富文本编辑器?
- asp.net-mvc-4 – ASP.Net Web Api在POST上不绑定模型
- asp.net-mvc – 区域在ASP.NET视图?
- ASP.NET Web API中除IQueryable之外的OData查询和类型
- asp.net – 编辑条目时的实体框架DateTime格式
- 在ASP.NET中禁用JavaScript时检测
- asp.net – Server.Transfer对Google不可见吗?
- asp.net – IIS 6.0和.Net 4的Default.aspx?
- 如何在ASP.NET中将文本框的宽度设置为与MaxLengt
- .net – 任何具有Postsharp生产经验的人?
- ASP.NET MVC 3 ValidateRequest(false)不能使用F
- asp.net中强类型的会话
- asp.net – Simplemembership – 添加电子邮件字
- 将Instant Messaging集成到ASP.NET应用程序中
- asp.net-mvc – S#arp架构与直接IOC NHibernate
- asp.net-mvc – ASP MVC – 多对多的关系