问题标签 [asp.net-session]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
40876 浏览

asp.net-mvc-4 - 如何在 ASP.Net MVC4 的 cshtml 文件中获取会话值

请帮帮我,该值存储在特定用户的会话中,当我从 cshtml 检索会话值时,它显示的是 PC 用户名,而不是数据库中存在的特定用户名。请建议会话代码以显示特定的用户名。我在 Cotrtoller 中使用此代码。

这是我的cshtml代码:

}

0 投票
0 回答
268 浏览

asp.net - Mixing sessions in a ASP.NET application

I am facing a problem of mixed information between sessions in my application. The problem occurs when a user loads a page and it populates a session (Session ["Whatever"]) ... so far so good. The problem starts to happen when that same user opens the same screen on another browser tab for example. He carries other information for the same session that is used on the first screen it opened. (Here is a small example)

I wonder if there is a better way to do this. Has some way to create a unique identifier for each tab opened by the user? Or some unique id in order to concatenate the name of the session? So sessions would be only by open flap.

Thanked.

0 投票
1 回答
178 浏览

c# - 会话状态未保存

我想用字符串键在会话中保存一个字符串。我喜欢这样做;

我的 mvc 应用程序中有一个用于向导的 ajax 请求序列。有部分视图。我请求保存会话并使用会话的控制器。但是在一个新的请求之后,我找不到密钥“sessionkey”的会话。我不是我正在学习的asp.net mvc的专业人士。我错过了什么吗?

0 投票
2 回答
99 浏览

asp.net - 在这种情况下我应该使用会话还是缓存?或者是其他东西?

我必须创建一种机制来存储和读取每个用户的首选项(控制默认值和设置)。我有一个与网络流量有关的问题,因为可以通过 Internet 访问数据库,并且应用程序服务器有时连接到较差的 512Kbps Internet 连接。

我的应用程序可以同时拥有大约 50 个用户,每个页面/表单最多可以有 50 个项目(首选项)。页数约为 80 页。

那么,从性能角度考虑,我应该选择哪个来减少网络流量?会话还是缓存?

更新

我创建了两个示例页面,一个使用缓存,另一个使用会话。

负载测试 90 个用户

存储内容 1000 个元素 每个元素的值 20 个字符

以下是每个测试用例的结果:

MemoryCache 分配的总字节数为 330,725,246

分配最多内存的函数

源代码:

会话 分配的总字节数为 111,625,747

分配最多内存的函数

源代码:

我忘了提到我正在创建一个与 ASP.Net 和 WPF 项目一起使用的解决方案,但是,如果 Session 比 MemoryCache 选项好得多,我可以为每个平台提供不同的解决方案。

0 投票
2 回答
1114 浏览

asp.net - 会话变量上的 ASP.NET 三元运算符

TextBox如果Session变量包含特定值,我正在尝试使用三元运算符将 css 类添加到 a :

我可以确认它MyVariable具有MyValue价值,但是,当我运行应用程序时,该类不会被应用。我发现了其他几个类似的问题,但它们都将三元运算符用于绑定表达式(使用<%# %>),而不是用于评估 Session 变量。我觉得我错过了一些明显的东西。任何帮助表示赞赏。

0 投票
1 回答
588 浏览

asp.net - Webforms 会话值现在应该存储在 MVC 不记名令牌中吗?

在我之前的工作(ASP.NET webforms)中,我使用该HttpContext.Current.Session对象来保存当前用户会话的安全相关用户数据,例如

在 WebAPI 2 上学了不少东西后,我现在开始学习 MVC。我一直在阅读Session和/或HttpContext.Current应该避免使用 MVC ......

  1. 同步和开销
  2. 会话污染 HTTP
  3. 应用程序冲突
  4. AppPool 回收

...但是简单的替代方案并没有很清楚。有人说使用TempData而其他人使用 cookie,但两者都有缺点。

我的应用程序是数据库密集型的,所以我想避免访问数据库来为每个请求重新读取这些值。在 WebAPI2 中有被序列化为 cookie 的不记名令牌。身份令牌是否足够安全以保存这些数据并避免用户篡改(如果通过 SSL 使用)?

0 投票
1 回答
919 浏览

c# - Out of proc SessionState 内存管理

我们正在使用进程外会话状态服务/ASP.Net 会话状态。我们知道这有问题,因为它在过去被滥用,太多存储在会话状态中,所以正在转向更具可扩展性的系统。

不过,与此同时,我们正试图弄清楚会话状态服务如何管理它的内存以及我们有什么限制。但微软文档似乎都没有涉及任何细节。

具体我想知道:

  • proc会话状态服务(与Windows管理控制台中的IIS一起安装)可以存储多少“标准”限制是什么?(x64)
  • 每个用户有限制吗?

通过标准服务,我的意思是这个:

在此处输入图像描述

0 投票
1 回答
8501 浏览

asp.net - 从服务器接收的 Cookie 是安全的,但发送到服务器的 Cookie 不安全 ASP.NET

在我的 ASP.NET Web 应用程序中,我通过将以下条目添加到 web.config 进行了以下更改以使 ASP.NET_SessionID 和 .ASPXAUTH Cookie 安全

并添加以下标签

但我的问题是,从服务器接收到的 Cookies(网络->Cookies->Direction 列的值为接收)已将 Secure 和 HttpOonly 标志设置为 true。当我使用 IE 11 开发工具进行调试时找到了信息,但是发送到服务器的 cookie 数据(网络-> Cookies-> 方向列的值为已发送)没有任何安全或 HttpOnly 标志设置为 true。

这是默认行为吗?如果是这样,为什么发送到服务器的数据没有设置 Secure 和 HttpOnly 标志?除了上述对配置文件所做的更改之外,如何设置它。

0 投票
1 回答
561 浏览

c# - 为什么 ASP.NET 在使用 Internet Explorer 时会在会话中间启动一个新会话?

我有一个 ASP.NET 应用程序,它似乎在另一个会话中间开始一个新会话。

  • 使用表单身份验证。

  • 身份验证超时 = 120。会话状态超时 = 130。

  • sessionState 模式 = InProc。

  • cookieless = false(应该与 UseCookies 相同)。

  • 仅在访问十几个其他页面后访问特定页面时才会发生。但是,如果我在访问否则失败的页面之前访问其他页面,则不会发生错误。

  • 不是由于应用程序池回收。我连续几个小时运行相同的 w3wp 进程。运行状况监控日志没有显示任何内容。

  • 在 F12 开发人员工具中使用网络功能时,所有 cookie 值在从一个会话到下一个会话的转换中仍然存在,但在故障点,cookie 视图显示“已接收:ASP.NET_SessionId”,而同一请求中的所有其他值显示作为“发送”。

  • 一切都发生在同一个域中(在本例中为 localhost)。

  • 对象在用户登录后几乎立即存储在 Session 对象中,因此这不是由于未使用的 Session 对象而导致每个请求的 ASP.NET_SessionId 更改的情况之一。

  • Windows 7 x64 开发系统上的 IIS 7.5。完全最新的所有 Windows 更新。

  • 我已在 Global.asax 中的所有全局事件中添加了调试语句,并且没有迹象表明我的任何代码导致会话 ID 在请求过程中丢失。我只是在调用特定函数时得到一个新的 Session_Start 事件,即使到目前为止已经成功处理了数十个请求。

示例用户代理字符串 (Chrome):“Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36”

示例用户代理字符串 (Internet Explorer):“Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko”

使用 Internet Explorer 9、10 和 11 可以始终如一地重现该问题。我没有尝试过旧版本的 Internet Explorer。

使用最新版本的 Firefox 或 Chrome无法重现该问题。

是否有一个我可以检查的列表,以便找出为什么 ASP.NET 认为它需要在运行 Internet Explorer 但没有其他浏览器类型时启动一个新会话并分配一个新的 ASP.NET_SessionId 值?

恐怕我不能比这更具体,但我希望以上信息至少可以消除谈话中的一些常见嫌疑人。

0 投票
1 回答
720 浏览

asp.net - 跨多个 SQL Server 数据库存储 ASP.NET 会话

我正在使用 SQLServer 来存储我的 ASP.NET 会话状态。我还有几个通过负载平衡器连接的 Web 服务器。每个服务器都将其会话存储在 SQLSerer DB 中。这里的问题是数据库是单点故障。

我的问题是 - 我如何将我的会话存储在多个 SQLServer 服务器上,并能够从每个服务器中获取最新的数据?