Идет разботка сайта. Поделили на три проекта (пользовательский, админский, общий функционал). Смотрю на это и подумываю, что видимо так сделали зря, но вопрос не в этом. Вопрос в том, что общий функционал создан как проект библиотеки, а не веб-сайт. И надо в нем написать класс для работы с авторизацией пользователя. И возникает у меня ощушение, что для корректной работы этого, в него надо в явном виде передавть либо сессию, где хранить данные, либо request. А вот этого не очень хочется, чтобы не загромождать методы списком разных аргументов.
Хочется услышать ваше мнение на этот счет.
Здравствуйте, CyberRussia, Вы писали:
CR>Идет разботка сайта. Поделили на три проекта (пользовательский, админский, общий функционал). Смотрю на это и подумываю, что видимо так сделали зря, но вопрос не в этом. Вопрос в том, что общий функционал создан как проект библиотеки, а не веб-сайт. И надо в нем написать класс для работы с авторизацией пользователя. И возникает у меня ощушение, что для корректной работы этого, в него надо в явном виде передавть либо сессию, где хранить данные, либо request. А вот этого не очень хочется, чтобы не загромождать методы списком разных аргументов. CR>Хочется услышать ваше мнение на этот счет.
если честно не понятен вопрос )
получить текущую сессию или request в любом месте можно через HttpContext.Current
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Удар судьбы в лоб означает, что не возымели действия ее пинки под зад
Здравствуйте, Dronopotamus, Вы писали: D>получить текущую сессию или request в любом месте можно через HttpContext.Current
Создайте проект, именно проект, а не веб-сайт, типа Class Library и попробуйте в нем получить HttpContext.Current Там такого просто нет, потому что этот проект не имеет ничего общего с сайтом и соответственно с Http. Соответственно, чтобы классы внутри такого проекта могли нормально работать с авторизацией, как я понимаю, например, HttpContext.Current надо явно передать в этот проект из проекта сайта. А это, ИМХО, не очень-то изящное решение.
P.S. Если все еще непонятно.
Проект раз — web-site user.
Проект два — web-site admin.
Проект три — Class Library.
Все три объединены в один Solution. Хочется написать класс авторизации внутри проекта три, чтобы он был доступен и для проекта один и для проекта два.
Здравствуйте, 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>>
Удар судьбы в лоб означает, что не возымели действия ее пинки под зад
Здравствуйте, Dronopotamus, Вы писали: D>Что значит "там такого просто нет"??? D>HttpContext — класс, находящийся в сборке System.Web.dll, к нему есть доступ из любой class library, достаточно добавить рефу. D>Другое дело, что что контекст может не быть инициализирован (например если создать просто class library и консольное приложение и пытаться работать с HttpContext.Current). Но веб сайт то у вас присутствует. Пусть логика и в class library.
Так, это уже интереснее. Чуть чуть подробнее про инициализацию, пожалуйста.
Здравствуйте, 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>>
Удар судьбы в лоб означает, что не возымели действия ее пинки под зад
Здравствуйте, Dronopotamus, Вы писали: D>да не, его не надо инициализировать руками, если только вы не собираетесь сами хостить аспнет. D>Просто включите сборку System.Web.dll в вашы проекты и можете юзать System.Web.HttpContext.Current в них.