Несколько веб-сайтов, [закрытый] дизайн Единой точки входа

10
задан Pure.Krome 4 August 2010 в 04:52
поделиться

2 ответа

Главное, что нужно понять, это то, что вы не можете аутентифицировать пользователя с помощью стандартной аутентификации Forms Authentication на нескольких доменах. Например, dev.google.com и www.google.com - это разные домены, и если пользователь регистрируется на dev.google.com, он не будет автоматически зарегистрирован на www.google.com, если только Google не сделает что-то специальное для этого. Это происходит потому, что браузер не может получить доступ к файлам cookie другого сайта.

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

Пример: http://www.example.com/autoLogin.aspx?sessionid=23232323

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

Теперь, если сайты находятся на одном домене, вы можете дать им всем один и тот же MachineKey, и тогда пользователь, уже вошедший на один сайт, не будет выходить из системы при переходе по разным сайтам на одном домене.

3
ответ дан 4 December 2019 в 03:38
поделиться

Изучите модель поставщика членства в ASP.Net.

Ниже приводится небольшой образец ссылок на ресурсы MSDN по этому поводу. Он должен покрыть все ваши потребности. Последние две ссылки относятся к образцу реализации на SQL. Вы можете легко расширить поля в соответствии со своими потребностями.

Другой вариант - реализовать вход с помощью OpenID / Windows Live или аналогичный.

2
ответ дан 4 December 2019 в 03:38
поделиться
Другие вопросы по тегам:

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