Несколько приложений с помощью той же базы данных входа в систему, регистрирующей друг друга

Я настроил два приложения ASP.NET на машине, их web.config файлы содержат то же значение applicationName в объекте AspNetSqlMembershipProvider, таким образом, они совместно используют пользователей и роли.

Проблемная последовательность:

  • пользователь входит в приложение A,
  • открывает новую вкладку в браузере
  • входит в приложение B,
  • его вход в систему в приложении A выписан

и наоборот.

Я должен использовать другой подход к совместному использованию данных для входа между двумя приложениями?

7
задан Peter Mortensen 22 March 2010 в 14:14
поделиться

2 ответа

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

Насколько я понимаю, решение состоит в том, чтобы давать разные имена cookie для разных учетных записей, чтобы один cookie не перезаписывал другой.

Вероятно, решение находится в web.config.

В конфигурации

Измените значение имени на другое в ваших 2 приложениях, если у вас один и тот же домен и вы работаете в разных каталогах / приложениях, или измените также значение домена который также использовался для хранения файлов cookie.

<authentication mode="Forms">
 <forms name=".CookieSuffix" domain="yoururl.com" ... />
</authentication>    

Например, в 2 разных файлах web.config в ваших приложениях поместите
в приложение 1: name = ". App1"
в приложении 2: name = ". app2"

Или в приложении 1: domain = "app1.yoururl.com"
в приложении 2: domain = "app2.yoururl.com"
, если вы разделяете свои приложения, основываете их на URL-адресах или даже пробуете какие-то похожие методы.

Файл cookie хранится с использованием имени файла cookie в доменном имени, поэтому это 2 значения, которые вы должны попытаться разделить.

Подробную информацию о настройке формы можно найти здесь: http://msdn.microsoft.com/en-us/library/aa480476.aspx

Ручной вход

Если у вас есть возможность выполнить вход вручную, решение заключается в этой функции

FormsAuthentication.GetAuthCookie(cUserName, false, "cookiePath");
FormsAuthentication.SetAuthCookie(cUserName, false, "cookiePath");

Вам нужно только использовать другой cookiePath, но вы должны изменить многие точки в своей программе и зафиксировать вход в систему, выход из системы и аутентификацию.

Надеюсь, это вам поможет.

15
ответ дан 6 December 2019 в 14:03
поделиться

Вы должны проверить это руководство.

Прокрутите вниз до раздела, озаглавленного «Разбиение пользовательского хранилища на приложения». Там говорится, что вы можете использовать одно и то же хранилище пользователей для нескольких приложений.

0
ответ дан 6 December 2019 в 14:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: