Веб-формы ASP.NET и совместное использование аутентификации MVC через cookie
Похоже, что часть ответов на мою проблему распределена по нескольким постам, но их совместная работа пока не работает для меня, поэтому я надеюсь, что после ответа на этот пост он сформирует более полное руководство.
Эта проблемаУ меня есть приложение веб-формы ASP.NET (W1), и я хотел бы начать обновление до отдельного приложения MVC (M1) в течение определенного периода времени. Решение, содержащее W1, было обновлено до 4.5, и в решении было создано M1. W1 использует структуру членства ASP.Net.
Контрольный примерВ M1 я добавил атрибут Authorize на страницу About в HomeController
[Authorize] public ActionResult About()
Я добавил ссылку на страницу о программе в M1, созданную на странице в W1, которая требует входа пользователя в систему.
ОжиданиеЯ ожидаю, что пользователь сможет войти в W1, щелкнуть ссылку на страницу M1 about и автоматически войти в M1.
КонфигурацияШаг 1Я извлекла validationKey и decryptionKey из W1, используя метод, изложенныйВот, Хотя это кажется логичным шагом, я не уверен, что он необходим, поскольку различные ключи все еще позволяют пользователю войти в W1.
Шаг 2После информацииВот а такжеВоти после значительной отладки я изменил разделы файлов Web.config для проектов следующим образом;
Для W1:
<system.web>
<authentication mode="Forms">
<forms name="WRSAUTH"
loginUrl="~/Account/Login.aspx"
defaultUrl="Default.aspx"
protection="All"
timeout="60"
path="/"
domain=".localhost"
requireSSL="false"
slidingExpiration="true"
cookieless="UseCookies"
enableCrossAppRedirects="false" />
</authentication>
<machineKey validationKey="<ValidationKey>"
decryptionKey="<DecryptionKey>"
validation="SHA1"
decryption="AES"/>
<compilation debug="true" targetFramework="4.5">
<httpRuntime maxRequestLength="12288" />
</system.web>
Для М1:
<system.web>
<authentication mode="Forms">
<forms name="WRSAUTH"
loginUrl="~/Account/Login"
defaultUrl="~/"
protection="All"
timeout="60"
path="/"
domain=".localhost"
requireSSL="false"
slidingExpiration="true"
cookieless="UseCookies"
enableCrossAppRedirects="false"/>
</authentication>
<machineKey validationKey="<ValidationKey>"
decryptionKey="<DecryptionKey>"
validation="SHA1"
decryption="AES"/>
<compilation debug="true" targetFramework="4.5"/>
<httpRuntime targetFramework="4.5"/>
</system.web>
<system.webServer>
<modules>
<!--<remove name="FormsAuthentication"/>-->
</modules>
</system.webServer>
Текущее состояниеПри нажатии на ссылку в W1, которая предназначена для страницы M1 about, пользователь не авторизуется и отображается экран входа в систему.
Что-то мне не хватает в конфигурации?