Tag: 会话变量

清除应用程序启动的所有会话

我注意到,当我重新启动ASP.Net应用程序时,记住用户的凭据会被记住,他们可能会发现它们会自动登录。 只要在登录时设置的用户会话变量未被携带,就会出现此行为。 那么,我如何“忘记”应用程序启动的所有会话? 我看到我不能在Application_Start事件中使用Session.Abandon() 。

将会话变量值与字符串进行比较

我将会话变量与字符串进行比较,以检查登录类型是否为管理员。 我正在使用的代码: if (Session[“loggedInUsername”] == null) { btnLogin.Text = “Sign In”; lblWelcome.Text = “Welcome!”; hypManageRestaurants.Enabled = false; hypManageReviews.Enabled = false; hypPostReviews.Enabled = false; } else { if (Session[“loggedInUserType”] == “Administrator”) { hypManageRestaurants.Enabled = true; hypManageReviews.Enabled = true; hypPostReviews.Enabled = true; } else { hypManageRestaurants.Enabled = false; hypManageReviews.Enabled = false; hypPostReviews.Enabled = true; } lblWelcome.Text = […]

使用State Server在不同的.NET版本之间共享会话状态

背景 我们使用.NET 3.5在IIS 6(Win2003 Server)上运行一个网站:site1.mysite.local 我们使用.NET 4.0在IIS 7(Win2008 Server)上运行第二个网站:site2.mysite.local 在每个站点上,web.config包含StateServer和相同的machineKey: 我们还有一个PostRequestHandlerExecute事件处理程序来修改“NET_SessionId”cookie以具有相同的根域和路径。 cookie.Domain = “.mysite.local”; cookie.Path = “/”; 在global.asax文件中,我们有以下代码来修改Application_Start事件中的App Name: protected void Application_Start(object sender, EventArgs e) { string applicationName = “mysiteapp”; // Change the Application Name in runtime. FieldInfo runtimeInfo = typeof(HttpRuntime).GetField(“_theRuntime”, BindingFlags.Static | BindingFlags.NonPublic); HttpRuntime theRuntime = (HttpRuntime)runtimeInfo.GetValue(null); FieldInfo appNameInfo = typeof(HttpRuntime).GetField(“_appDomainAppId”, BindingFlags.Instance | BindingFlags.NonPublic); […]

Asp.net会话变量

我有一个带有c#代码的asp.net项目。 我有一个名为GlobalVariable的静态类,我存储了一些信息,比如当前选择的产品。 但是,我看到当有两个用户使用该网站时,如果一个用户更改了所选产品,则会为每个人更改。 静态变量似乎与每个人都是共同的。 我想创建(来自c#代码)某种会话变量,它只使用c#代码,但不仅来自页面,而且来自任何类。

将会话变量从页面传递到页面

我想知道使用asp.net会话将变量从页面传递到页面的问题是什么。 我已经将代码删除到只有一个文本框来查看最新情况。 我只是想取一个文本框的值并将其显示在确认页面上。 单击该按钮时,它会将我转移到第二页,但标签为空白。 是的,我的post后面的url指向第二页。 这是按钮点击: protected void submit_Click(object sender, EventArgs e) { string name = txtFirstName.Text.Trim(); Session[“name”] = name; } 这是第二页的页面加载: protected void Page_Load(object sender, EventArgs e) { lblName.Text = (string)(Session[“name”]); } 除非我一直在看这个并且错过了什么。 我已经从MSDN上读过“如何:从会话状态读取值” 。

我应该在asp.net中声明一个会话变量

我正在构建一个Asp.net应用程序。 我需要在会话中保存HashTable。 在页面加载我正在写 protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Session[“AttemptCount”]=new Hashtable(); //Because of this line. } } 这里的问题是,当用户刷新页面时,会话[“AttemptCount”]也会刷新。 我想知道我应该在哪里申报 Session[“AttemptCount”]=new Hashtable(); 所以我的看法不会被彻底改变。 编辑在Global.asax中,只要用户打开网站,此会话就会开始。 我想仅在用户转到特定页面时才创建此会话。 即Login.aspx

使用Moles在unit testing中模拟会话变量

方法我是unit testing检查会话变量之类的 if(Session[“somevar”] != null) { // rest of the code } 在我的测试中,由于Session为null,因此无法摆脱此问题,因此抛出null引用exception。 为了绕过这个,我试着像下面这样嘲笑但没有运气 System.Web.Moles.MHttpContext.AllInstances.SessionGet = (HttpContext cntx) => { return (HttpSessionState)cntx.Session[“somevar”]; } 我甚至尝试过这里提到的方法来模拟HttpContext然后在下面做 HttpContext.Current = new HttpContext(workerRequest); HttpContext.Current.Session[“somevar”] = value; 但再次没有运气。 这一次,虽然HttpContext.Current不是null但是HttpContext.Current.Session因此抛出null refexception。 任何想法如何模拟这个/在我的测试中传递这个[不使用任何外部DLL或主要代码更改。 对不起,但是不能这样做]。 非常感谢和帮助你。

在C#中更新对象时会话对象发生更改

我有这个非常奇怪的问题,我确信我在这里遗漏了一些明显的东西。 我有这两行: HttpContext.Current.Session[listModelType + “ListModel”] = listModel; listModel.ProductRows = new Collection(listModel.ProductRows.Where(r => r.ParentRowId == 0).ToList()); 执行第二行后,我的会话对象也会更新(根据Visual Studio中的“Watch”) 我在这里想念的是什么? 我试过了 int i = 0; HttpContext.Current.Session[“i”] = i; i++; 和HttpContext.Current.Session [“i”]保持为0。