Tag: session

为什么我不能在两个使用StateServer的Web应用程序之间共享会话状态? 我错过了什么?

我无法使用Session StateServer获得两个相同的ASP.NET MVC应用程序来共享同一个Session。 我试图这样做的原因是我们最终将在3个需要共享相同状态的Web服务器上部署此应用程序。 我们需要使用StateServer,因为我们正在尝试最小化数据库对非数据相关存储的使用。 设置: 我已经将相同的代码库部署到http:// localhost / App1和http:// localhost / App2 两者都具有相同的Web.Config文件,具有以下内容: //stateConnectionString=”tcpip=192.168.1.52:42424″ /> // also doesn’t work 我用这个工具生成这些机器密钥 考试: 我将以下内容放入我的一个控制器中以测试它是否正常工作: ViewData[“mode”] = requestContext.HttpContext.Session.Mode.ToString(); string timestamp = DateTime.Now.ToString(); if (requestContext.HttpContext.Session[“timestamp”] == null) { requestContext.HttpContext.Session[“timestamp”] = timestamp; } ViewData[“timestamp”] = requestContext.HttpContext.Session[“timestamp”].ToString(); ViewData[“realtime”] = timestamp; 在视图中有这个: Mode: Time: real time: 结果: 对于这两个部署,当页面首次加载时,我可以看到模式是StateServer,时间戳设置为与实时值相同的时间。但是,如果这样做,只有第一页应该具有相同的时间实时价值。 第二个页面加载应该从StateServer读取,因为该时间戳值不再为null,并显示该时间值。 但相反,它再次显示实时价值。 刷新页面时,时间戳保持不变,实时值始终更新。 […]

ASP.NET按用户名终止会话

我的应用程序可以控制用户权限,因为并非所有用户都可以访问完整的网站。 此时,特定用户的所有权限都存储在他的会话中,因为在每次回发后搜索数据库都是一个问题。 问题是,当我删除权限时,用户仍然可以访问该页面,并且只有当他关闭浏览器时,更新才会生效。 有没有办法按ID杀死特定的应用程序会话,强制用户再次登录?

从一个控制器调用方法到另一个控制器时,Session为null … MVC

我有一个ASP.NET MVC应用程序,我添加了一个新的控制器,并从现有控制器调用这个新控制器的方法。 我正在使用会话变量,在控制器A中我调用控制器B中的方法: if (Session[“Grid”] != null){}//session object is fine here ControllerB b = new ControllerB (); b.CallMethod(); 在新控制器中,我正在调用B,方法如下所示: public object CallMethod(){ if (Session[“Grid”] != null)//session object is null { //do my thing } } 会话变量不是问题,它是会话对象。 它完全无效,因此我的应用程序爆炸了。 会话在控制器A中运行良好,那么为什么在控制器B中它为空? 谢谢

对HttpContext.Current.Session的静态引用是否为所有用户返回相同的会话?

在同一Web应用程序的多个用户方面,以下代码是否存在问题? 我的意思是,我知道一个纯静态字符串将在单个ASP.NET应用程序的所有会话中共享,但鉴于这明确引用了Current.Session ,即使它是静态的,它似乎总是引用“当前用户”的会话实例。 但是一个错误正在发生,可以解释为每个人共享Mode的当前值,从而最近的更改覆盖其他人的模式值。 (作为背景:此字符串位于整个应用程序中使用的Helpers类中。我不希望在整个应用程序中对Session[“Mode”]进行硬编码引用,并且不希望必须传递Session[“Mode”]来自aspx.cs页面的每个方法调用中的Session[“Mode”] 。) public static string Mode { get { var value = HttpContext.Current.Session[“Mode”]; return (value ?? string.Empty).ToString(); } set { HttpContext.Current.Session[“Mode”] = value; } }

无法检测Session变量是否存在

我正在尝试确定Session变量是否存在,但我收到错误: System.NullReferenceException:未将对象引用设置为对象的实例。 码: // Check if the “company_path” exists in the Session context if (System.Web.HttpContext.Current.Session[“company_path”].ToString() != null) { // Session exists, set it company_path = System.Web.HttpContext.Current.Session[“company_path”].ToString(); } else { // Session doesn’t exist, set it to the default company_path = “/reflex/SMD”; } 那是因为Session名称“company_path”不存在,但我无法检测到它!

Windows Phone 7 Silverlight使用会话

我正在创建一个Windows 7移动Silverlight项目。 我使用Rest api进行身份validation,使用类认证 。 我得到一个身份validation令牌作为响应,并将其分配给类属性AuthToken,因为我需要在不同的地方使用它。 有没有办法将此AuthToken存储在会话或其他任何内容中。 因为我在wp7中没有找到任何会话示例。 谢谢

如何在MVC中使用会话变量

我在“Global.asax”文件中声明了Session变量, protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); int temp=4; HttpContext.Current.Session.Add(“_SessionCompany”,temp); } 并希望将此会话变量用于我的控制器的操作, public ActionResult Index() { var test = this.Session[“_SessionCompany”]; return View(); } 但是我在访问会话变量时遇到exception。 请帮我解决这个问题,如何将会话变量访问到我的控制器的Action中。 我在Global.asax中的Application_Start中获得了一个exception,例如”Object Reference not set to an Insatance of an object” HttpContext.Current.Session.Add(“_SessionCompany”,temp);

如何在c#mvc中跨多个子域保持会话?

一个购物车应用程序我正在从正常页面进入提交您的详细信息页面时跳转域。 简而言之,部署了两个应用程序副本:一个服务器用于“主”站点,一个服务器具有运行在https上的ev证书,用于客户详细信息(包括付款;这是PCI合规性问题)。 我的问题是: 从http://shop.domain – > https://secure.domain跳转 (如果用户浏览后退回),我该如何保留会话? 使用JSONP传递cookie跨越域是微不足道的,但我不知道如何处理远程端的“重新连接”会话。 我已经阅读了有关滚动您自己的自定义会话提供程序等的各种事情,但我还没有找到一个不仅仅是通用建议; 当然没有关于如何使用它来重新加入会话的示例。 这是一个MVC3 c#网络应用程序。

创建交互式登录会话

我正在尝试创建一个类似于微软废弃的超级快速用户切换器 ( 下载 )的实用程序,它允许快速用户切换而无需通过欢迎屏幕。 我有一个使用未记录的WinStationConnectW API(以及WTSEnumerateSessions )的工作实现,但它只能切换到已登录的用户。 如何创建登录会话以便切换到未登录的用户? 我只需要支持XP,虽然在Vista / Seven上工作会很好。 (我目前的代码已经做了) 我知道这是可能的,因为Super Fast User Switcher可以做到这一点。 (虽然它需要Windows服务才能完成) 我正在编写C#,但我可以将任何答案翻译成C#。

Session.Clear(),Session.Abandon(),Session.RemoveAll()的MVC优化?

我正在使用一些应该在用户完成后终止的会话。 我偶然发现了这三场杀手。 何时是使用这些的最佳时间,因为我使用会话的时间比不是。 另外,还有其他会话终止我不知道吗?