2015-07-16 4 views
1

Я создаю одно веб-приложение, и есть требование, когда мне нужно различать значения одного и того же сеанса Session["JobNumber"] на разных вкладках браузера. если я вношу изменения в первую вкладку, эти изменения не должны влиять на вторую вкладку.Как различать значения одного и того же сеанса в разных вкладках браузера в asp.net C#

я искал его для этого и нашел такой же ответ во всех блогах и SO ответы, так что я попытался это:

в файле web.config

<configuration> 
    <system.web> 
    <sessionState cookieless="true" 
     regenerateExpiredSessionId="true" /> 
    </system.web> 
</configuration> 

на странице загрузки формы в

if (!IsPostBack) 
      { 
       PageID.Value = Guid.NewGuid().ToString(); 
. 

. 

} 

здесь PageID есть:

<asp:HiddenField ID="PageID" runat="server" /> 

код, где я хранить значение в сессии

var sessionkey = string.Format("Session_{0}", PageID.Value); 
      Session[sessionkey] = SelectedNumber; 
      Session["JobNumber"] = Session[sessionkey]; 

это то, что я везде, так что я попробовал это. но он не работает. вместо этого, когда i log in для моего приложения появляется с сообщением error:401. если я удалю этот код с web.config, эта ошибка исчезнет.

как 401 предназначен для отказа аутентификации. как код, который я написал в web.config, относится к этому? и странная вещь, всплывающее сообщение приходит: error:401 все еще я вошел в систему успешно. какие-либо предложения?

ответ

0

при загрузке страницы:

PageID.Value = Session["JobNumber"].ToString(); 

, где когда-либо с помощью Session [ "Номер_задания"], заменить его PageID.Value

Нет необходимости этого кода в web.config

<configuration> 
    <system.web> 
    <sessionState cookieless="true" 
     regenerateExpiredSessionId="true" /> 
    </system.web> 
</configuration> 
Смежные вопросы