Это кажется очень тривиальным вопросом, но все же я не могу его запустить. Я создаю веб-приложение asp.net и использую здесь проверку подлинности с помощью форм. Я выполнил следующие шаги.
1) В web.config это запись
<authentication mode="Forms"> <forms loginUrl="Default.aspx" timeout="30" defaultUrl="StockTips.aspx" cookieless="UseCookies" slidingExpiration="true" /> </authentication> <sessionState mode="InProc" cookieless="false" timeout="30" />
2) В default.aspx я использовал пользовательскую аутентификацию, и после прохождения аутентификации я перенаправляю на defaultUrl, упомянутый в web.config. Ниже приведен код. Это нормально работает.
Session["test"] = "testing"; FormsAuthentication.RedirectFromLoginPage(Login1.UserName, true);
Login1 - это контроль входа на asp.net.
3) В StockTips.aspx (который является defaulturl) при событии нажатия кнопки выхода из системы я пытаюсь прервать сеанс, чтобы он автоматически перенаправлялся на loginurl (default.aspx). Этого не происходит. Он остается на той же странице, то есть StockTips.aspx. Ниже приведен код.
protected void lnkLogout_Click(object sender, EventArgs e) { string str = Session["test"].ToString(); Session.Abandon(); //Session.RemoveAll(); //Session.Clear(); //FormsAuthentication.SignOut(); string str1 = Session["test"].ToString(); }
Значение в Session ["test"] также остается. Я пробовал закомментированный код выше. Я не хочу явно писать Response.Redirect для loginurl, поскольку я почти уверен, что после выхода из сеанса он автоматически перенаправляется на loginurl. Но как-то не получается.
Я не уверен, поможет ли следующая информация, но все же подумал о ее добавлении. У меня есть главная страница, на которой открываются как default.aspx, так и stocktips.aspx. LinkButton внутри stocktips.aspx, а не на главной странице.
Пожалуйста, дайте мне знать, если вам понадобится дополнительная информация с моей стороны.
Пожалуйста помоги!
Заранее спасибо.
С уважением,
Самар