Несколько проектов для одного сайта
От: CyberRussia  
Дата: 14.08.06 07:05
Оценка:
Идет разботка сайта. Поделили на три проекта (пользовательский, админский, общий функционал). Смотрю на это и подумываю, что видимо так сделали зря, но вопрос не в этом. Вопрос в том, что общий функционал создан как проект библиотеки, а не веб-сайт. И надо в нем написать класс для работы с авторизацией пользователя. И возникает у меня ощушение, что для корректной работы этого, в него надо в явном виде передавть либо сессию, где хранить данные, либо request. А вот этого не очень хочется, чтобы не загромождать методы списком разных аргументов.
Хочется услышать ваше мнение на этот счет.
Re: Несколько проектов для одного сайта
От: Dronopotamus Россия  
Дата: 14.08.06 07:21
Оценка:
Здравствуйте, CyberRussia, Вы писали:

CR>Идет разботка сайта. Поделили на три проекта (пользовательский, админский, общий функционал). Смотрю на это и подумываю, что видимо так сделали зря, но вопрос не в этом. Вопрос в том, что общий функционал создан как проект библиотеки, а не веб-сайт. И надо в нем написать класс для работы с авторизацией пользователя. И возникает у меня ощушение, что для корректной работы этого, в него надо в явном виде передавть либо сессию, где хранить данные, либо request. А вот этого не очень хочется, чтобы не загромождать методы списком разных аргументов.

CR>Хочется услышать ваше мнение на этот счет.

если честно не понятен вопрос )
получить текущую сессию или request в любом месте можно через HttpContext.Current
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Удар судьбы в лоб означает, что не возымели действия ее пинки под зад
Re[2]: Несколько проектов для одного сайта
От: CyberRussia  
Дата: 14.08.06 07:29
Оценка:
Здравствуйте, Dronopotamus, Вы писали:
D>получить текущую сессию или request в любом месте можно через HttpContext.Current
Создайте проект, именно проект, а не веб-сайт, типа Class Library и попробуйте в нем получить HttpContext.Current Там такого просто нет, потому что этот проект не имеет ничего общего с сайтом и соответственно с Http. Соответственно, чтобы классы внутри такого проекта могли нормально работать с авторизацией, как я понимаю, например, HttpContext.Current надо явно передать в этот проект из проекта сайта. А это, ИМХО, не очень-то изящное решение.

P.S. Если все еще непонятно.
Проект раз — web-site user.
Проект два — web-site admin.
Проект три — Class Library.
Все три объединены в один Solution. Хочется написать класс авторизации внутри проекта три, чтобы он был доступен и для проекта один и для проекта два.
Re[3]: Несколько проектов для одного сайта
От: Dronopotamus Россия  
Дата: 14.08.06 07:45
Оценка:
Здравствуйте, CyberRussia, Вы писали:

CR>Здравствуйте, Dronopotamus, Вы писали:

D>>получить текущую сессию или request в любом месте можно через HttpContext.Current
CR>Создайте проект, именно проект, а не веб-сайт, типа Class Library и попробуйте в нем получить HttpContext.Current Там такого просто нет

Что значит "там такого просто нет"???
HttpContext — класс, находящийся в сборке System.Web.dll, к нему есть доступ из любой class library, достаточно добавить рефу.
Другое дело, что что контекст может не быть инициализирован (например если создать просто class library и консольное приложение и пытаться работать с HttpContext.Current). Но веб сайт то у вас присутствует. Пусть логика и в class library.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Удар судьбы в лоб означает, что не возымели действия ее пинки под зад
Re[4]: Несколько проектов для одного сайта
От: CyberRussia  
Дата: 14.08.06 07:53
Оценка:
Здравствуйте, Dronopotamus, Вы писали:
D>Что значит "там такого просто нет"???
D>HttpContext — класс, находящийся в сборке System.Web.dll, к нему есть доступ из любой class library, достаточно добавить рефу.
D>Другое дело, что что контекст может не быть инициализирован (например если создать просто class library и консольное приложение и пытаться работать с HttpContext.Current). Но веб сайт то у вас присутствует. Пусть логика и в class library.

Так, это уже интереснее. Чуть чуть подробнее про инициализацию, пожалуйста.
Re[5]: Несколько проектов для одного сайта
От: Dronopotamus Россия  
Дата: 14.08.06 07:58
Оценка:
Здравствуйте, CyberRussia, Вы писали:

CR>Здравствуйте, Dronopotamus, Вы писали:

D>>Что значит "там такого просто нет"???
D>>HttpContext — класс, находящийся в сборке System.Web.dll, к нему есть доступ из любой class library, достаточно добавить рефу.
D>>Другое дело, что что контекст может не быть инициализирован (например если создать просто class library и консольное приложение и пытаться работать с HttpContext.Current). Но веб сайт то у вас присутствует. Пусть логика и в class library.

CR>Так, это уже интереснее. Чуть чуть подробнее про инициализацию, пожалуйста.


да не, его не надо инициализировать руками, если только вы не собираетесь сами хостить аспнет.
Просто включите сборку System.Web.dll в вашы проекты и можете юзать System.Web.HttpContext.Current в них.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Удар судьбы в лоб означает, что не возымели действия ее пинки под зад
Re[6]: Несколько проектов для одного сайта
От: CyberRussia  
Дата: 14.08.06 08:10
Оценка:
Здравствуйте, Dronopotamus, Вы писали:
D>да не, его не надо инициализировать руками, если только вы не собираетесь сами хостить аспнет.
D>Просто включите сборку System.Web.dll в вашы проекты и можете юзать System.Web.HttpContext.Current в них.

Понял, спасибо. Надо же как все просто оказалось.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.