Я разрабатываю два разных веб-сайта. В этом я использовал FormsAuthentication
для аутентификации. Я использую следующий код
FormsAuthenticationTicket authTicket = default(FormsAuthenticationTicket);
HttpCookie authCookie = default(HttpCookie);
authTicket = new FormsAuthenticationTicket(1, user.userContext.UserName, DateTime.Now, DateTime.Now.AddMinutes(Session.Timeout), model.RememberMe, model.Email);
string strEncryptedTicket = FormsAuthentication.Encrypt(authTicket);
authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, strEncryptedTicket);
if (authTicket.IsPersistent)
{
authCookie.Expires = authTicket.Expiration;
}
System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);;
Session.Add(Constants.LOGIN_DO, user.userContext);
Я использую один и тот же код на обоих сайтах для входа. При входе на один сайт работает. Но если я открою другой сайт в том же браузере и попытаюсь войти в систему, это создаст проблему. Он ведет себя неправильно - например, когда я выхожу из системы site1, он также выходит из системы site2. Предположим, что первый сайт — www.someone.com
, а второй — something.someone.com
.
Примечание: для site2 я меняю значение
Session.Add(Constants.LOGIN_DO, user.userContext);
, гдеLOGIN_DO = "OrgLoginDO";
web.config
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
Я не понимаю, почему это происходит? Может ли кто-нибудь помочь мне решить эту проблему? мне нужно использовать что-то другое? Я хочу реализовать его как без единого входа.
It misbehaves
? Пожалуйста, определите ожидаемое и фактическое поведение, которое вы наблюдаете. - person Darin Dimitrov   schedule 31.01.2016www.someone.com
, а второйsomething.someone.com
. - person Ajay   schedule 31.01.2016