【发布时间】:2013-03-27 22:56:44
【问题描述】:
我被要求完成的一个快速项目不需要疯狂的安全性,因此,我实现了一个简单的登录屏幕,可以根据数据库检查用户名和密码。
User u = new User();
if (u.AuthenticateUser(txtUsername.Text, txtPassword.Text))
Session.Add("UserSeshAuthenticated", true);
Response.Redirect("Dashboard.aspx");
所有其他页面共享一个 MasterPage 并在 Page_Load 事件中:
if ((Session["UserSeshAuthenticated"] == null) || ((bool)Session["UserSeshAuthenticated"] == false))
{
fw.Write("UserSeshAuthenticated has been lost or something");
string path = HttpContext.Current.Request.Url.AbsolutePath;
Response.Redirect("Login.aspx?retpath=" + path);
}
else
{
lblLoggedInUsername.Text = Session["UserSeshAuthenticated"].ToString();
}
这一切在我的开发机器上运行良好,但是当我将它发布到我的服务器时,当我的 MasterPage 加载时,它已经丢失了会话变量。
任何人都可以帮忙吗?...我应该今天下午直播,但我没想到我会遇到这个问题!!!
任何帮助表示赞赏。非常感谢。
【问题讨论】:
-
在服务器上,这个应用程序是在服务器根目录下运行的吗?如果它在文件夹中运行,该文件夹是否在 IIS 中配置为应用程序/包?
-
应用程序作为应用程序运行,但不在服务器根目录中...它在 DefaultWebSite 内的另一个应用程序内的应用程序下运行。 IIS > 站点 > 默认网站 > App1 > MyProblemApp
-
它不是在网络场或负载平衡系统上吗?
-
不,这两个都没有。
标签: c# session authentication session-variables