作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嘿,这是我的第一篇文章,所以我请求理解。我看了很多帖子,但我没有找到解决方案。
我想用以下方式实现自定义的membershipProvider类:
namespace Mvc_car.Authorization
{
public class SimpleMembershipProvider : MembershipProvider
{
private NHibernateRepository<Uzytkownik> repo;
ISession session;
[Inject]
public SimpleMembershipProvider(ISession session)
{
this.session = session;
}
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
{
repo = new NHibernateRepository<Uzytkownik>(session);
base.Initialize(name, config);
}
kernel.Bind<ISession>().ToMethod(x => MvcApplication.SessionFactory.OpenSession()).InRequestScope();
kernel.Bind(typeof(IRepository<>)).To(typeof(NHibernateRepository<>));
kernel.Inject(Membership.Provider); //either with or without that
<membership defaultProvider="MyMembershipProvider">
<providers>
<clear/>
<add name="MyMembershipProvider" type="Mvc_car.Authorization.SimpleMembershipProvider"/>
</providers>
</membership>
This method cannot be called during the application's pre-start initialization stage.
最佳答案
解决方案非常简单。在包含 PreApplicationStartMethod 属性的类中,添加一个像这样的静态方法。
public static class NinjectWebCommon
{
public static void InjectProviders()
{
Bootstrapper.Kernel.Inject(Membership.Provider);
Bootstrapper.Kernel.Inject(Roles.Provider);
}
...
}
public class DefaultMembershipProvider : MembershipProvider
{
[Inject]
public IUserRepository UserRepository { get; set; }
}
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
NinjectWebCommon.InjectProviders();
...
}
}
关于nhibernate - 如何设置自定义成员(member)提供程序类以使用存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6163134/
我是一名优秀的程序员,十分优秀!