Логин для членства в Asp.Net и машинный ключ

У меня есть приложение .Net, которое использует элемент управления входом в систему ASP.Net для аутентификации. Мое приложение было опубликовано на IIS7 в виде веб-сайта (www.mysite.com). Все работает нормально.

Теперь я создал новый веб-сайт и добавил в него приложение, содержащее мою публикацию (www.site.com/mysite). В этой публикации я больше не могу войти в систему (я получаю сообщение об ошибке «Fail»). После долгих поисков в Интернете я обнаружил, что проблема вызвана автоматически сгенерированным машинным ключом в моем приложении (у меня не было машинного ключа, установленного в web.config). Теперь я не могу установить машинный ключ, потому что у меня уже есть пользователь, созданный в моем приложении, и если установить машинный ключ, они больше не смогут войти в систему.

Мой вопрос: как я могу заставить новый веб-сайт (www.site.com/mysite) использовать тот же ключ компьютера, что и первый? Я пытался установить тот же AppPool, но безуспешно.

Примечание: у меня есть другие публикации, которые работают нормально и используют тот же машинный ключ, но все они являются корневыми приложениями на веб-сайтах (например, www.mysecondsite.com). Что происходит/что отличается в этой конфигурации wwww.site.com/mysite, что заставляет приложение генерировать новые ключи?


person user1626401    schedule 27.08.2012    source источник


Ответы (1)


Не знаю, почему никто не ответил на это раньше. Вы можете ввести его прямо в Web.Config. или введите значение там. Осторожно... любые данные приложения, использующие шифрование с этим, так как впоследствии ключ будет взломан. Как правило, вы настраиваете машину для каждого сайта и оставляете ее. Ключ проверки используется для шифрования. Т.е. асимметричный подход к сопоставлению паролей. Ключ дешифрования используется при расшифровке данных для получения исходного контента (симметричный).

<system.web>
     <machineKey decryptionKey="3815E48D71E4A60848B5213F1BBD7A2FEDAB229873421929" 
validationKey="3CB08C9B349194F28A340FBDA33BC94F7037FACCF9973CAFCAE4501D7F903BA7C539219FDCA77E2F864D848A60F249B639ED28925B90B3F7EECBB9A70EBE1607" />
</system.web>
person phil soady    schedule 05.12.2012
comment
Спасибо за решение @soadyp, но это не решает мою проблему. Действительно, запись machineKey из web.config избавит меня от всех этих проблем, если она была установлена ​​с самого начала. Но я не указал машинный ключ при первой публикации приложения и пользователей, созданных в системе, которых я не могу изменить. Теперь я не могу установить машинный ключ, потому что это не позволит пользователям войти в систему со своими старыми паролями. Мой вопрос: есть ли у меня решение для установки машинного ключа без изменения паролей пользователей? - person user1626401; 15.02.2013
comment
Если сайты использовали машинный ключ и с шифрованием. Тогда вы не сможете восстановить пароли. (Ну это монументальная задача для хакера). если вы измените ключ машины, вы не сможете получить доступ к паролям. Вы МОЖЕТЕ с кодом CUSTOM logon tool, попробуйте 2 машинных ключа. Это большое упражнение по программированию, поскольку оно требует реализации пользовательского поставщика членства. Вы можете отредактировать исходный вопрос, указав более подробную информацию о том, что вы хотели бы/должны сделать. Звучит не очень, извините. - person phil soady; 15.02.2013