У меня такая структура
www.website.com -> Веб-сайт ASP.NET 4.0
www.website.com/blog -> NET 4.0, веб-приложение
Оба выполняют проверку подлинности с помощью формы для одной и той же базы данных SQL и используют членство и роли платформы ASP.NET. Я могу нормально войти в каждую часть (тот же пользователь / пароль), но аутентификация не переносится, т.е. если я вхожу в /
, а затем нажимаю ссылку на /blog/
, /blog/
думает, что я анонимный, и снова запрашивает вход. Я сделал основы
i.e.
- Идентичный
<authentication mode="Forms">
как на сайте, так и в приложении web.configs - Идентичный
<machineKey>
раздел (да, одинаковые validationKey и decryptionKey)
Затем я проверил сгенерированные файлы cookie и заметил, что веб-сайт и веб-приложение, похоже, работают с разными файлами cookie.
Файлы cookie, созданные сайтом website.com/blog
- .ASPXFORMSAUTH-27604f05-86ad-47ef-9e05-950bb762570c
- .ASPXROLES
Файлы cookie, созданные сайтом website.com
- .ASPXFORMSAUTH
Я думаю, что это проблема, хотя я вижу это, несмотря на то, что у меня есть одинаковые <authentication>
разделы, которые выглядят как
<authentication mode="Forms">
<forms timeout="30" slidingExpiration="true" name=".ASPXFORMSAUTH" enableCrossAppRedirects="true" protection="All" cookieless="UseCookies"/>
</authentication>
Я прочитал несколько других сообщений, таких как Single Sign On with Forms Authentication, а также http://msdn.microsoft.com/en-us/library/eb0zx8fc.aspx
Было также несколько других сообщений, которые я сейчас не могу вспомнить. Я прошел через них (все?), Но все еще застрял. При необходимости я с радостью предоставлю дополнительные данные для отладки.
Был бы очень признателен за любые советы, которые могут быть у кого-то! Я думаю, что упираюсь в стену на этом!