Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> RoleProvider.GetRoleForUser(string username), как получить доступ к Session? 
V
    Опции темы
Bonus
Дата 20.8.2007, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



Проблема в следущем:

Я написал провайдер ролей, который конектится к SQL Server в методе GetRolesForUser(string username), но пароль для строки подключения хранится в Session.

К сессии пытаюсь получить доступ так:

HttpContext.Current.Session["userPass"]

но в этом методе Session почему-то возвращает null, хотя перед этим я добавляю в Session значение "userPass" на странице login.aspx:

Session.Add("userPass", "pass");
PM MAIL   Вверх
Bonus
Дата 21.8.2007, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



up
PM MAIL   Вверх
6atoh
Дата 22.8.2007, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 15.9.2006
Где: Minsk

Репутация: 1
Всего: 4



Нужно проверить настройки сессии в вебконфиге (секция sessionState). Если ее у тебя там нету, значит дело не в настройках, потому что по дефолту все должно работать. Возможно это баг ASP.NET Development Server, если ты его используешь.
PM MAIL ICQ   Вверх
Bonus
Дата 22.8.2007, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



нет, в настройках такого нет. работаю через IIS.

Ставлю бряку на Session.Add("userPass", "pass");
Session показывает что в ней что-то есть, но как только доходит до выполнения метода
GetRolesForUser(string username), то Session становится null. из-за чего такое может быть?
PM MAIL   Вверх
tol05
Дата 22.8.2007, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 34
Всего: 170



дело в том, что при аутентификации юзера Session еще не сформировано.
Последовательность событий приложения:
1. BeginRequest (Application_Start)
2. AuthenticateRequest (здесь работает твой провайдер)
...
3. AcquireRequestState (вот после этого Session и Application доступны)
в ту же тему

попробуй хранить инфу в кеше...


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Bonus
Дата 22.8.2007, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



так ведь кеш глобальный, а мне надо хранить пароль каждого юзера отдельно.
PM MAIL   Вверх
tol05
Дата 22.8.2007, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 34
Всего: 170



а что мешает добавлять в кеш "пароль юзера" под ключом "имя юзера"? Это же словарь имя-значение.
Вот и будет для каждого ключа (юзера) свое значение (пароль)


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Bonus
Дата 22.8.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



Сработало.

Спасибо tol05.

Но вообще странно, ведь сначала в Session ДОБАВЛЯЮТСЯ данные, затем когда вызывается метод GetRolesForUser, Session возвращает null, а потом (вне этого метода) в Session опять появляются мои данные...
Мистика...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.