ASP.Net会员提供商

0 c# asp.net-membership membership-provider

有没有办法禁用ASP.Net成员资格提供程序使用web.config?

目前它在web.config中存储连接字符串和sqlMembershipProvider,这不是我想要的.

谢谢

Ste*_*ven 6

您通常可以在调用其默认构造函数并调用Initialize它之后使用提供程序.但是,如果System.Web.Security.Membership没有web.config,则无法使用抽象,因为Membership该类已硬连接到配置文件.使用Membership该类时,它将实例化您在配置文件中配置的类型.

正如我所说,当您不想在配置文件中配置它时,您可以在代码中创建它.这将是一个很好的方法,尤其是当您拥有自己的IoC框架时(您可以将Membership外观视为仅用于派生类型的IoC实现MembershipProvider).以下是如何创建一个示例SqlMembershipProvider:

var configuration = new NameValueCollection();

configuration.Add("name", "SqlProvider");
configuration.Add("connectionStringName", "SqlServices");
configuration.Add("applicationName", "MyApplication");
configuration.Add("enablePasswordRetrieval", "false");
configuration.Add("enablePasswordReset", "true");
configuration.Add("requiresQuestionAndAnswer", "true");
configuration.Add("requiresUniqueEmail", "false");
configuration.Add("passwordFormat", "Hashed");
configuration.Add("maxInvalidPasswordAttempts", "5");
configuration.Add("passwordAttemptWindow", "10");

var provider = new SqlMembershipProvider();
provider.Initialize("SqlProvider", configuration);

// And here store it in a static field or register it with your
// favorite IoC container.
container.RegisterSingle<MembershipProvider>(provider);
Run Code Online (Sandbox Code Playgroud)

祝好运.