asp.net 成员身份登录状态控件需要代码



我正在使用loginStatus控件让我的用户注销。我没有为注销过程编写更多的代码(没有会话删除,删除cookie或重定向用户),只是依靠控件的内置代码。

现在我想知道在页面上放置一个 LoginStatus 控件并让它自己完成其余部分是否足够(我的意思是删除会话 cookie 并注销用户),或者我应该处理它的事件并编写代码来删除 cookie 并注销用户。

我读过,即使在通过 LoginStatus 控件注销用户后,我们也应该删除会话 cookie 以避免其他人获取和使用它(劫持它)或添加一些字符串,如 IP 或......到其内容以避免劫持...是真的吗?

尝试这样的事情:

FormsAuthentication.SignOut();
Session.Abandon();
// clear authentication cookie
HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
cookie1.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie1);

然后

FormsAuthentication.RedirectToLoginPage();

LoginStatus控件仅注销您的 FormsAuth 票证,但不明确放弃当前会话。重要的是要注意,FormsAuth 票证(存储为 cookie)是实际决定用户是否登录以及谁登录的内容;ASP.NET 会话不会(除非您有自定义代码在表单身份验证状态之上额外检查 ASP.NET 会话)。

因此,如果您只需要签出票证,那么您就可以开始了。但是,如果您的应用程序将信息存储在 ASP.NET 会话中,并且您也需要将其丢弃,则应将事件处理程序添加到页面代码隐藏中的LoggedOut事件并调用 Session.Abandon (或任何您认为合适的内容)。

相关内容

  • 没有找到相关文章

最新更新