Является ли переменная сеанса для браузера, компьютера или входа в систему?
По умолчанию для файлов cookie используется браузер, поэтому при открытии вкладки или другого экземпляра браузера переменная Session будет такой же.
Если они откроют другой браузер, отличный от первого (в первом проекте они открывают Firefox и IE для второго), переменная Session будет отличаться для двух.
Каков наилучший способ сохранить этот идентификатор для текущего окна браузера?
Если цель состоит в том, чтобы пользователи одновременно работали над несколькими проектами в одном браузере (с вкладкой или другим экземпляром), я бы не советовал использовать переменную Session.
Полагаю, вам нужно сохранить ProjectID для нескольких страниц, я бы предложил добавить его в свой URL-адрес в качестве маршрута и вернуть данные на ваши страницы.
Ваш URL может выглядеть следующим образом / Project / Edit / 12345.
Вот пример для вашего файла Global.asax.cs
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("",
"Project/{action}/{projectId}",
"~/Project.aspx");
}
На вашем Project.aspx.cs вы можете получить доступ к данным маршрута следующим образом:
int year = Convert.ToInt32(Page.RouteData.Values["projectID"])
Вы можете обратиться к этому для получения дополнительной информации о маршрутизации:
http://msdn.microsoft.com/en-us/library/cc668201.aspx#routes