protected void Page_Init(object sender, EventArgs e)
{
if (Session["login"] == null)
Response.Close();
else if (ml.GetAcctPermissionsByLogin(Session["login"].ToString()) > 0)
Response.Close();
else
Response.Write(Session["login"].ToString()); //это вообще добавил для проверки
}
Как сделать правильный logout в ASP.NET?
Пытался сделать логуат разными способами.
Session.Abandon()
потом Session.Clear()
даже явно делал Session["login"] = null при логауте.
Картина следующая, есть у меня страница, к которой гости не должны иметь доступа.
гость не заходившиый в систему не может попасть на страницу указав ее явный путь, к примеру http://bla bla bla/page.aspx
залогиненный юзер может попасть на страницу указав и явный путь и по ссылке на страницу
юзер сделавший логаут может попасть на страницу указав явный путь %)
у страницы этой такой код:
Код:
самое интересное что на последней строчке вылетает исключение Session = 'Session' threw an exception of type 'System.ArgumentNullException'
Типа Session["login"] == null. Но почему не срабатывает первая проверка??? Что за бред
Цитата:
ml.GetAcctPermissionsByLogin(Session["login"].ToString()) > 0
ты какую-то свою аутентификацию делаешь (не встроенную)?
Код:
Response.Expires = 60;
Response.ExpiresAbsolute = System.DateTime.Now;
Response.AddHeader("pragma", "no-cache");
Response.AddHeader("cache-control", "private");
Response.CacheControl = "no-cache";
Response.ExpiresAbsolute = System.DateTime.Now;
Response.AddHeader("pragma", "no-cache");
Response.AddHeader("cache-control", "private");
Response.CacheControl = "no-cache";
Вот уж не знаю, как кеш связан с тем, что не выполнялось первое условие, но на последней строчке было нулл поинтер эксепшн
Опере правда все равно...