Является ли база данных членства .Net переносной или учетные записи каким-либо образом связаны с исходным веб-сайтом или сервером? - PullRequest
2 голосов
/ 23 апреля 2010

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 23 апреля 2010

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

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

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

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

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

0 голосов
/ 23 апреля 2010

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

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

...