единично влизане в много домейни без бисквитки

използвам Visual Studio 2008.

моето изискване е да внедря единно влизане в много домейни, без да използвам бисквитки. Възможно ли е това?

например имам 3 домейна (хоствани в 3 различни системи). www.domain1.com www.domain2.com www.domain3.com

и бисквитките са деактивирани.

внедрих единично влизане с бисквитки, ако сайтовете се хостват в една система, тогава работи. но не работи, ако бисквитките са деактивирани.

Опитах всички възможни търсения в Google, но не можах да намеря нищо полезно. Моля помогнете ?


person Harsha    schedule 16.02.2011    source източник


Отговори (2)


Вярвам, че Microsoft имат трик за тяхното единично влизане, който може да работи за това. Предполагам, че вместо бисквитки бихте задали променлива на сесията, така че теорията е (по памет) нещо като:

1 - Определяте един домейн като точка за удостоверяване, т.е. без значение къде влизате, вие се уверете, че www.domain1.com има променлива за сесия, настроена да казва, че потребителят е удостоверен (предполагам, че в идеалния случай можете просто да поставите знака страница в този домейн, но ако не, можете да заобиколите това, като използвате http заявки за настройка на първоначално удостоверяване за влизане в домейн1).

2 - Тогава трикът е да имате общ хедър във всички други страници на домейн (1,2,3,4), който първо прави проверка, за да види дали променливата на сесията е зададена в съответния домейн и ако не, прави пренасочване към domain1, определя дали потребителят е влязъл - ако е така, вземете данните за вход - пренасочете обратно към домейна, от който сте дошли (предавайки данните за вход) и след това настройте променливата за вход, след като се върнете в домейна, от който сте започнали.

Имаме кръстосано удостоверяване на домейн в система, с която работя - прави се с бисквитки и е кошмар за работа - разгледахме възможни опции за препроектиране на това и това е по памет решението, което изглеждаше най-подходящо често - имайте предвид, че все още беше базирано на бисквитки, мисля, но трябва да работи и със сесии.

person Rob    schedule 16.02.2011
comment
@Rob това е перфектен начин. но проблемът е, че при всяко зареждане на страницата за вход се пренасочва 3-4 пъти с помощта на response.redirect. в среда за разработка е бързо, трябва да го проверите в среда на живо. - person Harsha; 16.02.2011
comment
@Rob, последвах те, но не можах да го направя. когато отворих първия домейн, www.domain1.com, е зададена променлива за сесия. и когато отворя втори домейн, www.domain2.com, пренасочвам към първия домейн и проверявам за променлива на сесията. тук проблемът е, че създава нова сесия при пренасочване от втори домейн. така че това не работи. - person Harsha; 21.02.2011
comment
@Harsha - хммм... извършвате ли пренасочване от страна на клиента? Моят опит със сесиите е, че те са доста постоянни и убиването на сесия обикновено включва убиване на браузъра... - person Rob; 22.02.2011
comment
@Rob използвам Response.Redirect, какво друго ще използвам?? - person Harsha; 23.02.2011
comment
@Harsha - това бих използвал и аз... така че като друг тест, ако настроите сесия на домейн 1, след това отидете до несвързан домейн и прегледате обратно (не с бутона за връщане) към домейн 1, прави сесията продължава? Може би проверете дали сесията е без бисквитки... - person Rob; 24.02.2011
comment
@Rob - отворих домейн1, отворих несвързан домейн и отворих домейн1 в същия раздел на браузъра, когато бисквитките са активирани, сесията остава, но когато бисквитките са деактивирани, сесията е нула. с тази настройка ‹sessionState mode=InProc cookieless=AutoDetect/› в web.config. и този сценарий ясно посочва, че не можем да постигнем sso, когато бисквитките са деактивирани. обред ? - person Harsha; 28.02.2011
comment
@Harsha - msdn.microsoft.com/en-us/library/aa479314.aspx възможно е да има сесии без бисквитки в asp.net с помощта на ‹sessionState cookieless=true /› - person Rob; 01.03.2011

Трябва да погледнете Windows Identity Foundation и Услуги за федерация на Active Directory в тази ера. Базиран е на Метасистема за самоличност и модел на идентичност, базиран на твърдения; улесняване на тези типове сценарии за идентичност/удостоверяване и SSO.

Ръководство за базирана на искове самоличност и контрол на достъпа

Във вашия случай и трите ви сайта ще „изнесат“ услугите за удостоверяване на доверена услуга за токени за сигурност (STS). Този STS може да бъде ADFS, ако излагате самоличности на домейни на AD в Интернет, в противен случай персонализирана реализация на WIF. Вашите уеб сайтове пренасочват неавтентифицирани посетители към вашия STS, който им предава токени за сигурност (обикновено под формата на SAML), които уеб сайтовете могат да приемат като претенции за самоличност.

person icelava    schedule 16.02.2011
comment
интересно. но не е с отворен код - person Harsha; 21.02.2011
comment
Във въпроса беше ли посочено нещо, изискващо решение с отворен код? какво ви тласка към подход с отворен код за това? - person icelava; 28.02.2011
comment
това, което е злобно да се каже, е, че Windows Identity Foundation не е безплатна помощна програма, трябва да я закупим. - person Harsha; 28.02.2011
comment
Харша, не знам откъде имаш това впечатление. WIF е безплатен за изтегляне и разработка. Самата среда за изпълнение на WIF е категоризирана като Windows Update, за да се присъедини към другите основополагащи стълбове на .NET Framework - WCF, WPF, Workflow, Cardspace. - person icelava; 03.03.2011