ASP.NET - 受保护的变量

Posted

技术标签:

【中文标题】ASP.NET - 受保护的变量【英文标题】:ASP.NET - protected variable 【发布时间】:2011-08-02 08:37:20 【问题描述】:

如果我使用受保护的变量,该变量是否存在于整个 Web 应用程序中,或者当用户通过 get 或 post 移动到其他页面时它是否会被删除?我确实知道除非我使用静态变量,否则它在其他页面中不可访问,但我很好奇它是否存在于整个应用程序中。请告诉我!

【问题讨论】:

【参考方案1】:

当您移动到其他页面并返回时,您的页面类的新实例将被创建,因此所有非静态变量都将被重置。

该值将在一个请求进程生命周期内有效(从请求开始到请求结束)

使变量受保护,只是意味着该变量在继承类中是可访问的。例如在 asp.net 中,你可以在继承类中使用它,就像在你的标记中一样(因为它继承了类后面的代码)

这就是受保护变量的意思

如果您想在页面之间保存一个值,您可以根据您的要求使用以下项目之一:

饼干 查询字符串 会话状态 应用程序状态 缓存

ViewState 在同一页面或控件的回发之间保持状态变量,而不会重定向到另一个页面。

【讨论】:

感谢您的回复。很有帮助。【参考方案2】:

protected 关键字不能确定变量存在多长时间,也不能确定它是否会在下一个回帖中可用。

您可能正在寻找的是状态管理。

查看this webpage,了解如何维护回发、不同页面等之间的状态。

还可以查看this page 以确定在哪种情况下使用哪个状态管理功能。

【讨论】:

谢谢。我会看看他们。【参考方案3】:

通常,“页面”变量仅在请求期间有效。如果您的变量是静态的,那么在应用域卸载之前,所有请求都只有一个变量实例。

如果您的变量是私有的或受保护的,其他类将无法访问它。

不过,您的问题似乎有点奇怪。你有什么顾虑?

【讨论】:

我想知道使用受保护的变量是否会降低我的 Web 应用程序的速度。我听说会话变量确实会减慢 Web 应用程序的速度。受保护的变量不会在用户之间共享,是吗?

以上是关于ASP.NET - 受保护的变量的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 从受密码保护的网络共享中读取文件

Asp.Net Core、JWT 和 OpenIdConnectServer

壹刊Azure AD调用受Microsoft 标识平台保护的 ASP.NET Core Web API (上)

Asp.Net Web API JWT 身份验证

细说ASP.NET Forms身份认证

细说ASP.NET Forms身份认证