0

我有一个名为“A”Asp.Net 的页面,我想只允许一个用户访问该页面。如果没有人访问该页面,那么任何用户都可以访问该页面而不使用数据库我该怎么做。我正在尝试使用 c# 的页面加载和 javascript 的窗口 onbeforeunload 事件,但没有得到它。

<script type="text/javascript" language="JavaScript">
        var hidViewstate;

        window.onload = body_Load;
        window.onbeforeunload = WindowCloseHanlder;

        function body_Load()
        {
            hidViewstate = document.getElementById('<%=hidViewstate.ClientID %>');
        }

        function WindowCloseHanlder()
        {
            hidViewstate.value = parseFloat(hidViewstate.value - 1);
        }

    </script>

<div>
        <asp:Label ID="lblText" runat="server" Text="Label"></asp:Label>
        <asp:HiddenField ID="hidViewstate" runat="server" />
    </div>

protected void Page_Load(object sender, EventArgs e)
    {
        hidViewstate.Value = "1";

        if(Convert.ToInt32(hidViewstate.Value) == 1)
        {
            lblText.Text = "Welcome First User";
        }
        else
        {       
            lblText.Text = "Visiting on this page is not allowed because user is already login.";

        }

    }
4

2 回答 2

0

这与 Web 服务器的运行方式背道而驰。了解导致您尝试此操作的实际问题会很有趣。

在技​​术方面,您可以将全局变量存储在Application. 所有请求共享同一个全局对象。

但是,如果您向我们解释了您要解决的真正问题,我想您会发现这不是一个好方法,我相信我们可以提出一个真正的解决方案。

于 2012-10-20T06:31:45.877 回答
0

您可以使用全局变量,例如静态类的静态变量,

在页面加载时,您可以检查

if(clsGlobal.userCount > 1)
{
Response.Redirect("~/anotherPage.aspx") // somewhere you want..
}
else
{
//display your welcome message
}
于 2012-10-20T07:01:00.573 回答