相关疑难解决方法(0)

依赖注入和ASP.Net成员提供商

我正在为ASP.Net MVC网站创建自定义成员资格提供程序.作为更大的库的一部分,提供程序被创建为单独的类.后端数据存储需要灵活,因为它可以是Xml文件或SQL数据库.我最初的想法是为数据存储创建一个接口,并使用依赖注入将其注入提供程序.

最终结果是开发人员可以继承数据存储接口并提供更新数据所需的方法,然后由自定义成员资格提供程序使用.

但是,由于我自己缺乏技能,我无法弄清楚如何将该类添加到网站时将其注入会员提供商?将数据存储链接到提供程序需要做些什么?在网站上启用此功能的最简单方法是什么?

asp.net-mvc dependency-injection data-storage membership-provider

34
推荐指数
2
解决办法
7175
查看次数

在NInject中绑定MembershipProvider时我应该使用InSingletonScope吗?

我是NInject绑定的新手,这是NInject描述的内容.

  • TransientBehavior - 每次请求一个新类型的实例.
  • SingletonBehavior - 仅创建该类型的单个实例,并为每个后续请求返回相同的实例.
  • OnePerThreadBehavior - 将为每个线程创建该类型的一个实例.
  • OnePerRequestBehavior - 将根据Web请求创建该类型的一个实例,并在请求结束时销毁.

如果我想将MembershipProvider绑定到SqlMembershipProvider,我应该使用SingletonBehavior,因为我只需要一个sql成员资格提供程序吗?

dependency-injection ninject

10
推荐指数
1
解决办法
3730
查看次数

Custom MembershipProvider:没有为此对象定义的无参数构造函数

我有一个自定义MembershipProvider类,它继承自MembershipProvider,它带有两个参数:

public class CustomMembershipProvider : MembershipProvider
{
    private readonly ISecurityRepository _securityRepository;
    private readonly IUserRepository _userRepository;

    public CustomMembershipProvider(ISecurityRepository securityRepository, IUserRepository userRepository)
    {
        ...
    }

    public override MembershipUser GetUser(string username, bool userIsOnline)
    {
        ...
    }

    ... etc
}
Run Code Online (Sandbox Code Playgroud)

这个配置文件看起来类似于:

<membership defaultProvider="CustomMembershipProvider">
  <providers>
    <clear />
    <add name="CustomMembershipProvider" type="Library.Membership.CustomMembershipProvider" />
  </providers>
</membership>
Run Code Online (Sandbox Code Playgroud)

这在我的Web应用程序中主要用于登录和注销.我正在使用Unity for DI并在我的Boostrapper.cs类中设置必要的类.

但是,当我想创建一个自定义User类并调用Membership.GetUser方法时,我最近遇到了一个问题.当我这样做时,我得到以下异常:

{"No parameterless constructor defined for this object. (C:\\*app path*\\web.config line 43)"}
Run Code Online (Sandbox Code Playgroud)

我的配置文件中的第43行指向我上面发布的自定义成员资格提供程序.我认为在其他地方,应用程序使用Unity来解析这些参数,但是在使用Membership类时却没有.

有什么办法可以告诉应用程序如何解决这些依赖关系,或者如果没有办法在不使用具体实现的情况下将这些依赖关系添加到我的成员资格提供程序中?

编辑1:

这是自定义User类:

public class User : MembershipUser
{
    public int UserId { get; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc dependency-injection asp.net-membership unity-container

6
推荐指数
1
解决办法
1799
查看次数