Обычно вы можете использовать провайдера сразу после вызова его конструктора по умолчанию и вызова 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);
Удачи.