我正在使用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");
}
如果我在本地使用它,它工作正常但是当我在客户端服务器上加载它时根本不起作用。为什么会这样?
答案 0 :(得分:0)
您是否已将本地使用的web.config替换为您的服务器 如果不是/不可能 检查以下标签
<sessionState mode="[Off|InProc|StateServer|SQLServer|Custom]"
timeout="number of minutes">
</sessionState>
同时检查这是否反映在IIS状态管理中。
答案 1 :(得分:0)
您可能正在使用生产IIS上的Web园以及进程内会话。这意味着IIS正在您的服务器上生成多个工作进程。
因此,每个请求都可以由任何工作进程处理,但进程内会话只能在同一进程中使用。
您可以将工作进程数减少为一个。但是,正如消费者评论的那样,您不应该创建自己的身份验证系统。