Я использую openid-селектор с DotNetOpenAuth в моем приложении MVC 3.Всякий раз, когда я устанавливаю переменную сеанса, а разделы DotNetOpenAuth находятся в web.config, мои переменные сеанса не сохраняются после перенаправления.
Я проверял переменную Session.SessionID, и она все та же, поэтому яЯ нахожусь в том же сеансе (я полагаю), но когда я проверяю переменные сеанса, которые я только что установил после перенаправления, они все установлены в нуль.
Я не видел никого больше с этой проблемой.Мне интересно, если DotNetOpenAuth просто еще не готов к MVC 3.Я также использую последнюю версию DotNetOpenAuth.
Вот соответствующие части файла web.config, если он помогает:
<configSections>
<section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<section name="dotNetOpenAuth" type="DotNetOpenAuth.Configuration.DotNetOpenAuthSection" requirePermission="false" allowLocation="true"/>
</configSections>
<uri>
<idn enabled="All"/>
<iriParsing enabled="true"/>
</uri>
<system.net>
<defaultProxy enabled="true"/>
<settings>
<servicePointManager checkCertificateRevocationList="true"/>
</settings>
</system.net>
<dotNetOpenAuth>
<openid>
<relyingParty>
<security requireSsl="false"/>
<behaviors>
<add type="DotNetOpenAuth.OpenId.Behaviors.AXFetchAsSregTransform, DotNetOpenAuth"/>
</behaviors>
</relyingParty>
</openid>
<messaging>
<untrustedWebRequest>
<whitelistHosts>
<add name="localhost"/>
</whitelistHosts>
</untrustedWebRequest>
</messaging>
<reporting enabled="true"/>
</dotNetOpenAuth>
Обновлено:
этопроисходит на моем сервере разработки, либо в IIS, либо когда я запускаю сервер разработки ASP.NET.
Кроме того, я попытался запустить сеанс в процессе и вне процесса, используя сервер состояний, и он не сделалразница.
Что касается нового сеанса, я проверил событие session_start, и оно не вызывается.Я также проверил Session.IsNewSession, и это также вернуло false.Так что что-то случайно (или, возможно, не так случайно) удаляет мои переменные сеанса!