У меня есть 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.
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.
Есть предложения?