ПРИМЕЧАНИЕ. Я включил здесь 3 ссылки на локальные области, но не смог отправить сообщение, поэтому я разделил их пробелом, чтобы они отправлялись в stackoverflow.
В настоящее время у меня есть 2 приложения ASP.NET MVC в моем решении. Сначала я запускаю первый, установив его в качестве запуска проекта. Он переходит на страницу входа, оттуда после ввода данных я выполняю следующий код:
var authTicket = new FormsAuthenticationTicket(1, login.LoginDataContract.MSISDN, DateTime.Now,
DateTime.Now.AddMinutes(Convert.ToDouble("30")), true, "");
string cookieContents = FormsAuthentication.Encrypt(authTicket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieContents)
{
Expires = authTicket.Expiration,
//Path = FormsAuthentication.FormsCookiePath
//Path = "http://localhost"
Domain = ""
};
if (System.Web.HttpContext.Current != null)
{
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
}
Как вы можете видеть, я установил Domain = "", поэтому, теоретически, он должен работать на любой вещи под моим http: // localhost. Затем я установил для постоянной безопасности cookie значение true, чтобы я мог получить к нему доступ из любого места под локальным хостом.
Печенье пишет хорошо, и я вошел в систему и все Godd на данный момент. Кстати, URL для этой страницы входа: http // localhost / MyAccount / Login
Теперь я прекращаю решение и устанавливаю другие приложения MVC для запуска. Тогда я запускаю это. URL для второго сайта: http: // localhost / WebActivations /
Вот код в контроллере запуска других приложений:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
// PASHA: Added code to read the authorization cookie set at
// login in MyAccount *.sln
for (int i = 0; i < System.Web.HttpContext.Current.Request.Cookies.Count;i++)
{
Response.Write(System.Web.HttpContext.Current.Request.Cookies[i].Name + " " + System.Web.HttpContext.Current.Request.Cookies[i].Value);
}
HttpCookie authorizationCookie = System.Web.HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName.ToString()];
// decrypt.
FormsAuthenticationTicket authorizationForm = FormsAuthentication.Decrypt(authorizationCookie.Value);
ViewData["Message"] = authorizationForm.UserData[0].ToString();
return View();
}
public ActionResult About()
{
return View();
}
Проблема в этом контроллере Home, когда я запускаю решение, которое не может прочитать куки-файл аутентификации, вы видите цикл, в котором он не находит куки-файл .ASPXAUTH.
Но как только он падает в Firefox, я заглядываю в «Информация о странице», а затем в «Безопасность» и «Куки» и там, и тот же cookie.
Что я делаю не так?