Переменная Gobal ASP.NET для каждого браузера - PullRequest
0 голосов
/ 02 июня 2011

Средой является ASP.NET 4.0 с использованием C #.

Я собирался поместить нужный мне идентификатор в переменную сеанса.Например:

Session["ProjectID"] = ProjectsComboBox.SelectedValue.ToString();

Однако возможно, что пользователь мог открыть мое веб-приложение на одном компьютере в двух разных окнах браузера и работать над двумя разными проектами.

Естьпеременная сеанса для браузера, компьютера или входа в систему?

Каков наилучший способ сохранить этот идентификатор для текущего окна браузера?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 03 июня 2011

Является ли переменная сеанса для браузера, компьютера или входа в систему?

По умолчанию для файлов 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

0 голосов
/ 02 июня 2011

Я предполагаю, что вы используете стандартный метод управления состоянием сеанса на основе файлов cookie.В зависимости от того, как пользователь открывает свои несколько окон, весьма вероятно, что каждое окно будет считаться частью одного и того же сеанса, так как файл cookie будет разделен между окнами.

Вот отличная статья, которая предоставляетрешение для идентичной проблемы:

http://graciesdad.wordpress.com/2007/05/26/multiple-browser-windows-with-one-session-state/

Удачи!

...