2

У меня есть веб-сайт ASP.Net с использованием .Net-членства с поставщиком SQL Server, поэтому пользователи и роли хранятся в таблицах SQL, созданных Aspnet_regsql.exe.Является ли база данных членства .Net переносимой, или же учетные записи каким-то образом связаны с исходным веб-сайтом или сервером?

Является ли эта архитектура полностью автономной и переносной или пользователи в ней каким-то образом привязаны к определенному веб-сайту, на котором они создают свою учетную запись?

Иными словами, если мы создаем группу пользователей в dev или UAT, резервное копирование и восстановление этой базы данных на другой сервер, доступ к которой осуществляется под другим доменным именем, должен ли он работать нормально?

Мы наблюдаем какое-то странное поведение, когда мы перемещаем базу данных, например, пользователи теряют членство в группе и т. Д., И мне любопытно, насколько переносная и экологическая агностика эта база данных действительно есть. У меня есть подозрение, что что-то связано с машинным ключом или доменом.

ответ

0

Да, они должны хорошо работать.

Только место, где вам нужно быть внимательным, является управление паролями. .Net Поставщики членства могут использовать специальные ключи для шифрования или хеширования паролей. Но есть работа, в которой вы указываете приложению asp.net использовать конкретный машинный ключ, а не автогенерируемые конкретные машины.

В моем приложении я сохраняю свои пароли зашифрованными, и я определил свой машинный ключ, как показано ниже, для шифрования/дешифрования. Когда я это сделаю, я могу переносить свою базу данных разработки на рабочий сервер, а также легко переносить базу данных с одного производственного сервера на другой.

<machineKey validationKey="<your-validation-key>" decryptionKey="<your-decryption-key>" validation="SHA1"/> 

Больше не нужно беспокоиться о миграции во время работы с MembershipProviders.

+1

Если вы этого не сделали, и просто предоставить провайдеру пароли с автогенерируемым машинным ключом, есть ли способ для восстановления после этого? Я не знаю, является ли это моей проблемой, но если мы предположим, что хеш пароля определен для конкретной машины ... что вы делаете? – Deane

+0

Я никогда не рассматривал эту ситуацию, так как мы активно занимались этим, делая это таким образом. Я думаю, вы сможете получить машинный ключ из machine.config в вашем случае. Будем писать здесь, если найду что-то плодотворное по этому вопросу. –

0

Пользователи привязаны к названию приложения. Вы можете проверить его и посмотреть, соответствует ли имя приложения каждому пользователю имя приложения на web.config на вашем рабочем сервере.

Кроме того, когда вы переносите членство в другую базу данных, вы должны убедиться, что используете не только таблицы, но и все хранимые процедуры. Если по какой-либо причине вы просто портируете схему своей базы данных, вы должны запустить Aspnet_regsql.exe перед ее переносом.

+0

Но в ситуации резервного копирования и восстановления, не все ли сохраненные procs все равно перейдут? – Deane

 Смежные вопросы

  • Нет связанных вопросов^_^