会话不起作用

时间:2011-12-06 10:36:32

标签: c#

我正在使用SQL Express 2008和visual studio 2010。

我使用session创建了一个简单的登录表单。我希望如果会话为空,则用户不能转到所需的页面。我写了以下代码:

public void btnsubmit_CLICK(object sender, EventArgs e)
{
    if (TextBox1.Text =="admin" && TXTID.Text =="admin")
    {
        Session["user"] = "admin";
        Response.Redirect("generate_report.aspx");
    }
    else
    {
        lblmsg.Text = "user name Or password is not correct!"; 
    }

下一页:

protected void Page_Load(object sender, EventArgs e)
{
    if (Session["user"] != "admin")
    {     
        Response.Redirect("Default.aspx");
    }

如果我在本地使用它,它工作正常但是当我在客户端服务器上加载它时根本不起作用。为什么会这样?

2 个答案:

答案 0 :(得分:0)

您是否已将本地使用的web.config替换为您的服务器 如果不是/不可能 检查以下标签

<sessionState mode="[Off|InProc|StateServer|SQLServer|Custom]" 
  timeout="number of minutes">
</sessionState>

同时检查这是否反映在IIS状态管理中。

答案 1 :(得分:0)

您可能正在使用生产IIS上的Web园以及进程内会话。这意味着IIS正在您的服务器上生成多个工作进程。

因此,每个请求都可以由任何工作进程处理,但进程内会话只能在同一进程中使用。

您可以将工作进程数减少为一个。但是,正如消费者评论的那样,您不应该创建自己的身份验证系统。