Я хотел бы использовать .Net SqlMembershipProvider и SqlRoleProvider для управления пользователями в моем приложении. Моя проблема в том, что когда приложение запускается, оно не знает никакой информации о подключении к базе данных. В целях безопасности ему необходимо получить эту информацию от службы WCF, работающей на сервере базы данных. Поэтому мне нужно создавать поставщиков членства / ролей постфактум.
Думаю, мне удалось разработать и добавить поставщика членства:
// register membership provider
var membership = new SqlMembershipProvider();
var providerValues = new NameValueCollection();
providerValues.Add("name", "sqlMembershipProvider");
providerValues.Add("applicationName", "/");
providerValues.Add("connectionStringName", "connectionStrDynamAddedToConfig");
providerValues.Add("maxInvalidPasswordAttempts", "10");
membership.Initialize("sqlMembershipProvider", providerValues);
Мне пока не удалось придумать что-то подобное для создания RoleProvider. Я могу создать поставщика, но не могу добавить его в диспетчер ролей. Нужно ли мне создавать настраиваемого поставщика, который может принимать connectionString после того, как он уже инициализирован?