2013-10-01 2 views
0

В нашем проекте мы предоставляем пользователям такие поддомены tumblr, а также пользовательские имена доменов, такие как «mydomain.com». Таким образом, у меня есть один и тот же сервер и одно приложение, но разные имена доменов.tumblr as custom domain names crossdomain authentication in mvc3

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

<authentication mode="Forms"> 
      <forms domain="xxx.com" loginUrl="~/account/logon" timeout="2880" /> 
    </authentication> 

Но в данном случае я «Выход» проблемы, поэтому подписание Out просто не работают даже после того, как я добавил эти строки кода (все решения этой проблемы я нашел):

formsAuthentication.SingOut(); 
    Session.Abandon(); 
    HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, ""); 
    cookie1.Expires = DateTime.Now.AddYears(-1); 
    Response.Cookies.Add(cookie1); 
    HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", ""); 
    cookie2.Expires = DateTime.Now.AddYears(-1); 
    Response.Cookies.Add(cookie2); 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    Response.Cache.SetNoStore(); 

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

ответ

1

Обходное решение заключается в том, чтобы установить информацию о пользователе в локальном хранилище, установленном клиентом из «основного домена», а затем установить файл cookie, созданный субдоменом, но для всех ваших операций ввода-вывода вы должны будете использовать «основной домен ", вы можете найти, как работает stakoverflow и все сайты братьев и сестер, потому что они используют SSO, поэтому решайте это, в любом случае, возможно, this post поможет вам.

EDIT

для получения дополнительной информации, как SO решить проблему auto login