2017-01-26 8 views
9

У меня есть веб-сайт, который имеет субдомены, такие как ali.sarahah.com, но если пользователь входит в систему с www.sarahah.com, тогда идет ali.sarahah.com сеанс не сохраняется. После поиска я добавил следующее в Startup.cs:Как я могу обмениваться сеансом между поддоменами в ASP.NET Core?

app.UseCookieAuthentication(new CookieAuthenticationOptions 
{ 
    CookieDomain = ".sarahah.com" 
}); 

Я обнаружил, что домен .AspNetCore.Identity.Application печенье все еще показывает поддомен а не домен, и что проблема сессии еще есть.

Я делаю что-то неправильно?

ответ

2

я был в состоянии решить эту проблему, добавив в метод ConfigureServices в Startup.cs:

 services.AddIdentity<ApplicationUser, IdentityRole>(options => 
     { 
      options.Cookies.ApplicationCookie.CookieDomain = ".yourdomain.com"; 
      options.Cookies.ApplicationCookie.CookieSecure = Microsoft.AspNetCore.Http.CookieSecurePolicy.None; 
     }) 

CookieSecure часть, потому что мой сайт перемещается между HTTP и HTTPS в разных страницах.

Спасибо :)

7

Я думаю, что вам нужно удалить ведущую . в присвоении домена, как описано в этом GitHub вопрос:

app.UseCookieAuthentication(
    new CookieAuthenticationOptions 
    { 
     // Note that there is no leading . 
     CookieDomain = "sarahah.com", 
     CookieSecure = CookieSecurePolicy.None 
    }); 

Смотрите CookieAuthenticationOptions для различных свойств.

+0

Печенье с именем .AspNetCore.Identity.Application все еще показывает поддомен ... Спасибо – Techy