Сессии
Сессии хранятся в расчете на пользователя в памяти (или альтернатива Состояние сеанса ) на сервере. Сессии используют cookie ( сеансовый ключ ) для связи пользователя с сессией. Это означает, что никакие "чувствительные" данные не хранятся в cookie на пользовательской машине.
Сессии обычно используются для поддержания состояния, когда Вы перешли через веб-сайт. Однако они могут также использоваться для содержания объектов, к которым обычно получают доступ. , Только если Состояние сеанса установлено на InProc, если установлено на другой режим Session-State , объект должен также сериализуемый.
Session["userName"] = "EvilBoy";
if(Session["userName"] != null)
lblUserName.Text = Session["userName"].ToString();
Cookie
Cookie хранятся в расчете на пользователя на пользовательской машине. Cookie является обычно просто небольшим количеством информации. Cookie обычно используются для простого пользовательского предпочтительного ect цветов настроек. Никакая уязвимая информация никогда не должна храниться в cookie.
Вы никогда не не можете полностью доверительный, что в cookie не вмешался пользователь или вне источника однако, если безопасность является большим беспокойством, и необходимо использовать cookie тогда, можно или зашифровать cookie или установить их, чтобы только быть переданными по SSL. Пользователь может очистить свои cookie в любое время или не разрешить куки в целом, таким образом, Вы не можете рассчитывать на них являющийся там просто, потому что пользователь посетил Ваш сайт в прошлом.
//add a username Cookie
Response.Cookies["userName"].Value = "EvilBoy";
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(10);
//Can Limit a cookie to a certain Domain
Response.Cookies["domain"].Domain = "Stackoverflow.com";
//request a username cookie
if(Request.Cookies["userName"] != null)
lblUserName.Text = Server.HtmlEncode(Request.Cookies["userName"].Value);
заметка на полях
стоит упомянуть, что ASP.NET также поддерживает управление состоянием cookieless
Попробуйте использовать диапазон Unicode:
'/[\x{0410}-\x{042F}]/u' // matches a capital cyrillic letter in the range A to Ya
Не забудьте флаг / u для Unicode.
В вашем случае:
"#\[name=([a-zA-Z0-9\x{0430}-\x{044F}\x{0410}-\x{042F} .-]+)*]#u"
Обратите внимание, что STAR в вашем регулярном выражении является избыточным. ПЛЮС уже все «съедает». Это будет делать то же самое:
"#\[name=([a-zA-Z0-9\x{0430}-\x{044F}\x{0410}-\x{042F} .-]+)]#u"
Обычный скрипт Unicode (поддерживается начиная с pcre 3.3) обеспечивает проверку свойства Cyrillic .
например, замена всех символов, которые не являются ни кириллическими, ни (латинскими) цифрами :
$string = '1a2b3cйdцeуfкбxюy';
echo preg_replace('/[^0-9\p{Cyrillic}]/u', '*', $string);
Вы можете найти документацию по этой функции в http://www.pcre.org/pcre.txt «Свойства символов Unicode».
И вы должны указать флаг PCRE8 (u), как описано на http://docs.php.net/reference.pcre.pattern.modifiers