FormsAuthentication.SignOut 方法
从浏览器删除 Forms 身份验证票证。
如果 CookiesSupported 为 false,SignOut 方法会从 Cookie 或 URL 中移除 Forms 身份验证票证信息。可以结合使用 SignOut 方法和 RedirectToLoginPage 方法来注销一个用户并允许其他用户登录。
如果以独占方式在无 Cookie 模式下运行,或者如果支持混合模式,则在移除匿名标识符后要求执行特殊业务逻辑时,应该显式控制到登录页的重定向。
当调用 SignOut 方法时,通过将 endResponse 参数设置为 false 来调用 Redirect 方法会重定向到应用程序的登录页。当前页在未完成执行之前不会发生重定向,因此其他代码可以运行。如果代码不包含到其他页的显式重定向,则用户将被重定向到在应用程序的配置文件中配置的登录页。
安全注意
调用 SignOut 方法只能移除 Forms 身份验证 Cookie。Web 服务器不会存储有效的和过期的身份验证票证以便今后比较。如果恶意用户获得有效的 Forms 身份验证 Cookie,这将使您的站点易于受到重播攻击。若要提高使用 Forms 身份验证 Cookie 时的安全性,应该进行以下操作:
response: 主要用于服务器端向客户端发送数据,其中可以利用 Response.Write 直接向客户发送信息,也可以利用 response.Redirect 进行重新定位客户端到另一个 URL 上去,当然也可以利用 Response.Cookies 来设置 Cookies 的值。
使用格式:
response.write( 变量 ) ‘ 向客户端发送数据
response.redirect “网页名” ’ 指引用户端浏览器到新的页面
response.end ‘ 停止处理任何 ASP 文件,并把已处理部分的结果送出
response.clear ‘ 清除存放在服务器缓冲区的所有数据
Response.Cookies(cookie 名 )[(key)|.attribute]=value ‘ 设置 cookies 集合中的 cookie 的值。
五大对象response 、request 、session、 application、 serve
下面的代码示例使用 SignOut 方法清除 Forms 身份验证 Cookie,然后使用 RedirectToLoginPage 方法将用户重定向到登录页。
<%@ Import Namespace="System.Web.Security" %>
<script runat="server">
public void LoginLink_OnClick(object sender, EventArgs args)
{
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
}
{
if (!IsPostBack)
{
if (this.Page.Title =="◣我的站點◥")
{
this.lblStatus.Visible = false;
}
else
{
this.lblStatus.Text = "【" + this.Page.Title + "】";
}
}
}
protected void RadMenuMain_ItemClick(object sender, Telerik.Web.UI.RadMenuEventArgs e)
{
if (e.Item.Text == "退出")
{
FormsAuthentication.SignOut();
Response.Redirect("wfLogin.aspx", true);
}
}
本文介绍如何使用FormsAuthentication.SignOut方法从浏览器删除Forms身份验证票证,以及如何使用RedirectToLoginPage方法将用户重定向到登录页。文章还提供了示例代码,展示了如何在用户选择退出时实现这些操作。
8856

被折叠的 条评论
为什么被折叠?



