如何使用浏览器的后退按钮停止已登录的用户再次登录?

时间:2014-01-20 22:05:04

标签: c# asp.net login

在我用asp.net(C#)构建的在线商店应用程序中,已经登录的用户可以在提供正确的用户名和密码后再次登录后退按钮登录页面。我该如何阻止它?

我的问题是:如果用户成功登录,那么在不注销当前用户的情况下,其他用户就无法使用后退按钮登录登录页面。

注意:虽然其他用户可以登录,但第一个用户会自动注销,没有非法侵入。

  1. 匿名用户点击登录链接并登录login.aspx页面
  2. 说,用户“rk”已成功输入用户名和密码登录
  3. 现在,“rk”点击浏览器的后退按钮
  4. 再次登录login.aspx页面
  5. 现在,当“rk”输入用户名和密码(同名用户名“rk”或者说另一个用户名“rishi”及其密码)
  6. 新用户成功登录(“rk”或“rishi”,用pwd输入用户名)
  7. 所以,我想要一些机制来阻止第二个用户登录和/或某个消息显示,如果已经有一个登录的用户还没有登出。

    Login.aspx.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.Security;
    
    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }   
    }
    <br/ >
    
    **Global.asax**   
    
    <%@ Application Language="C#" %>
    
    <script runat="Server">
    
    void Application_Start(object sender, EventArgs e)    
    {
        // Code that runs on application startup
    }   
    
    void Application_End(object sender, EventArgs e) 
    {
    //  Code that runs on application shutdown
    }  
    
    void Application_Error(object sender, EventArgs e) 
    { 
    // Code that runs when an unhandled error occurs
    //Log all unhandled errors
    Utilities.LogError(Server.GetLastError());
    }
    
    void Session_Start(object sender, EventArgs e) 
    {
    // Code that runs when a new session is started
    }
    
    void Session_End(object sender, EventArgs e) 
    {
    // Code that runs when a session ends. 
    // Note: The Session_End event is raised only when the sessionstate mode
    // is set to InProc in the Web.config file. If session mode is set to StateServer 
    // or SQLServer, the event is not raised.
    }
    
    
    </script>
    <br />
    

    注意:我使用Visual Studio的Web站点管理工具功能(即ASP.NET成员资格提供程序)来创建具有管理员角色的“管理员”和具有客户角色的任何其他新用户。

    我只是asp.net的初学者,并尝试建立电子商务网站,参考“Cristene Daire”书籍帮助。很抱歉使用外行条款。

3 个答案:

答案 0 :(得分:0)

如果会话仍然登录,请检入登录页面,然后直接重定向到默认页面。

答案 1 :(得分:0)

只需在登录用户加载页面时,向登录页面添加一个logout命令。

如果您只想在另一次登录时注销,只需将logout命令添加到submit form命令。

答案 2 :(得分:0)

使用JavaScript禁用或隐藏浏览器的后退按钮。