ссылаюсь на sharing cookie in subdomains я реализовал ответ JRO и он работал на входе в систему. (Совместное использование куки в различных поддоменов)CurrentPrincipal.Identity.IsAuthenticated верно даже после SignOut когда FormsAuth домен куки установлен вручную
Однако с этим изменением осуществил процесс выписки. Пожалуйста, обратитесь к коду SignOut и SignIn, который я привел ниже.
Проблема заключается в том, что в процессе выписки он выполняет FormsAuthentication.SignOut и затем перенаправляется на контроллер знака, но "System.Threading.Thread.CurrentPrincipal.Identity.IsAuthenticated"
имеет значение true, даже если в процессе выписки вызывается FormsAuthentication.SignOut.
код, который устанавливает формы Authentication Cookie
public static HttpCookie GetAuthenticationCookie(CookieData cookieData)
{
string userData = PrepareCookieContentFromCookieData(cookieData); //Get a string with User data
AuthenticationSection section = WebConfigurationManager.GetWebApplicationSection("system.web/authentication") as AuthenticationSection;
TimeSpan ts = section.Forms.Timeout;
int timeout = (ts.Minutes != 0) ? timeout = ts.Minutes : 1;
bool isPersistent = Convert.ToBoolean(HttpContext.Current.Request.Form["isPersistent"] ?? "False");
if (isPersistent) timeout = 30 * 24 * 60;
//ticket object is formed based on the above details set. Evry page afer login will use this ticket to get base user data
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, cookieData.userName, DateTime.Now,
DateTime.Now.AddMinutes(timeout), isPersistent, userData, FormsAuthentication.FormsCookiePath);
// to encrypt the ticket
string encryptedCookieString = FormsAuthentication.Encrypt(ticket);
// setting the ticket to the cookie.
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedCookieString);
cookie.HttpOnly = true;
cookie.Domain = "parent.com";
if (isPersistent)
cookie.Expires = DateTime.Now.AddYears(1);
return cookie;
}
Вход Выход
public ActionResult SignOut()
{
if (HttpContext != null && HttpContext.Session != null)
{
HttpContext.Session.Abandon();
}
FormsAuthentication.SignOut();
}
return RedirectToAction("SignIn", "User");
}
зарегистрировались
public ActionResult SignIn(string CompanyCode)
{
//Check if logged in
if (System.Threading.Thread.CurrentPrincipal.Identity.IsAuthenticated)
{
//return to a specific page
}
}
Цените любую помощь по этому вопросу.
Когда я удаляю домен cookie (установлен в ""), вывод работает нормально. Поэтому проблема заключается в настройке домена вручную. Есть ли еще что-то еще? – Dhanuka777