MVC Asp.net не может видеть куки-файлы аутентификации, установленные приложением веб-форм Asp.Net - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть AppA.mydomain.com , который использует Asp.Net WebForms и AppB.mydomain.com , который использует Asp.Net MVC 5.

web.config обоих приложений имеют общие настройки machinekey и authentication

<machineKey validationKey="some-key" decryptionKey="some-key" decryption="3DES" validation="SHA1" compatibilityMode="Framework20SP2" />
...
...
<authentication mode="Forms">
   <forms name=".AUTHTEST" protection="All" timeout="60" cookieless="UseCookies" domain="mydomain.com"/>
</authentication>

AppA имеет функцию входа в систему и настройки cookie проверки подлинности. AppB должен прочитать тот же файл cookie для проверки подлинности своих запросов.

сейчас из AppB, я пытался прочитать файлы cookie аутентификации

var authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie == null)
{
   ...
   // raise exception
}

даёт authCookie всегда null

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

Все файлы cookie, показанные ниже, созданы AppA.

enter image description here

AppB может видеть все файлы cookie, кроме .AUTHTEST, который является файлом cookie для аутентификации.

Я написал страницу в AppB, чтобы перечислить все файлы cookie запроса, вот она

 // list all cookies
 for (int i=0; i < Request.Cookies.Count; i++)
 {
     cooks += Request.Cookies.Get(i).Name + " , ";
 }
 lblmsg1.Text = cooks; 

Выходные данные на странице

ASP.NET_SessionId , __RequestVerificationToken

.AUTHTEST не указан.

Но когда я устанавливаю имя файла cookie для аутентификации в web.config, как показано ниже

<authentication mode="Forms">
   <forms name=".AUTHOTHER" protection=.../>
</authentication>

Теперь AppB запускает список тех же файлов cookie, но в виде обычных файлов cookie, а не файлов cookie для аутентификации

ASP.NET_SessionId , __RequestVerificationToken , .AUTHTEST

Мне нужно прочитать .AUTHTEST cookie как FormsAuthentication cookie, чтобы воспользоваться FormsAuthentication.

от Asp.Net.

Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...