问题标签 [httpcontext]

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 投票
4 回答
92121 浏览

c# - Get current System.Web.UI.Page from HttpContext?

This is actually a two part question. First,does the HttpContext.Current correspond to the current System.UI.Page object?

And the second question, which is probably related to the first, is why can't I use the following to see if the current page implements an interface:

The general context is that some controls need to know whether they are executing as a SharePoint webpart, or as part of an Asp.Net framework.

I have solved the problem by requiring the control to pass a reference to itself, and checking the Page property of the control, but I'm still curious why the above does not work.

The compiler error is: Cannot convert System.Web.HttpContext to ...IWebBase via a reference conversion, boxing conversion, unboxing conversion, wrapping conversion or null type conversion.

0 投票
6 回答
40398 浏览

.net - 如何在线程或计时器中访问 HttpServerUtility.MapPath 方法?

System.Timers.Timer在我的 Asp.Net 应用程序中使用了 a ,我需要使用HttpServerUtility.MapPath似乎只能通过HttpContext.Current.Server.MapPath. 问题在于HttpContext.Current事件null何时Timer.Elapsed触发。

还有另一种方法来获取对 HttpServerUtility 对象的引用吗?我可以将它注入我的类的构造函数中。安全吗?我怎么能确定它不会在当前请求结束时被垃圾收集?

谢谢!

0 投票
5 回答
38598 浏览

asp.net-mvc - 控制器实例上的 HttpContext 在 ASP.net MVC 中为空

这可能不是使用控制器的正确方法,但我确实注意到了这个问题并且没有想出纠正它的方法。

我注意到控制器上的 HttpContext 不是您在 System.Web.HttpContext.Current 中找到的“实际”HttpContext。

有没有办法在控制器上手动填充 HttpContextBase?还是创建控制器实例的更好方法?

0 投票
2 回答
3883 浏览

asp.net - HttpContext 如何通过请求-响应进行维护

我想知道如何维护 HttpContext ,因为 Web 的请求-响应性质本质上是无状态的。

HttpContext 对象的标识符是否作为 __EVENTTarget / __EVENTARGUMENTS 隐藏字段的一部分发送,以便 HttpRuntime 类可以通过从请求 (HttpWorkerRequest) 中读取此部分来创建 HttpContext 类?我不认为

请让我知道,因为我试图填补我对 http 管道的理解中的一些漏洞,但我找不到任何有关此的信息。

我理解类似 HttpContext.Current.Session["myKey"] = Value;

只是工作,但如果我必须用不同的语言(比如 perl)做类似的事情,我将不得不使用相同的隐藏字段,不是吗?

谢谢-维努

0 投票
6 回答
6137 浏览

asp.net - 在 Web 和非 Web 应用程序之间共享 HttpContext 代码

我有一个 VB.NET 模块,它从资源文件中读取以正确的语言显示文本。这是我的问题 - 此代码在 Web 应用程序和非 Web 应用程序之间共享,在 Web 应用程序中,我使用 System.Web.HttpContext 来确定用户的首选语言,但现在我的 Windows 应用程序甚至无法编译,因为它说 HttpContext 没有定义(我已经尝试为完整的命名空间添加导入 - 没有骰子)。

如果我不能以其他方式解决它,我很想使用某种 try/catch 块,但这不会改变 Windows 应用程序不会在其中引用 HttpContext 进行编译。如果不将这段代码移动到一个新文件中并仅将其包含在 Web 应用程序中(我不拥有该应用程序,所以我宁愿不处理这些影响),我是否还有其他选择来处理这个问题?

如果这没有意义,请告诉我,我会尽力澄清。

解决方案:我刚刚添加了对 System.Web 的引用,它允许我的应用程序编译。我还将 HttpContext 引用包装在“If HttpContext.Current isnot Nothing Then...End If”块中,如果它没有作为 Web 应用程序运行,这会导致它跳过代码,这正是我正在寻找的。

0 投票
1 回答
884 浏览

asp.net - HttpContext 并为 WebForms 和 MVC 编写组件

我正在编写一个我希望能够在 MVC 和 WebForms Web 应用程序中使用的组件,但我不确定如何处理 HttpContext 处理方式之间的差异。

我的组件涉及自定义 IHttpHandler(用于 WebForms)或自定义 ActionResult(用于 MVC)。

所以我有几个问题:

  • 有没有办法在不破坏模型的情况下将 IHttpHandler 与 MVC 一起使用?
  • 在尝试编写适用于两者的代码时使用 HttpContext.Current 是否可以接受?对我来说这似乎有点暴力(不知道为什么),但替代方案是编写和实现一个相当冗长的接口来处理 HttpContext 和 ControllerContext 之间的抽象。
  • 我会完全错了吗?
0 投票
10 回答
29668 浏览

c# - 为什么我的抽象基本控制器中的用户(如 User.Identity.Name)为空?

我在问一个相关的问题,但把标题弄乱了,没有人能理解。由于我现在能够更准确地提出问题,因此我决定将其重新表述为一个新问题并关闭旧问题。对此感到抱歉。

所以我想要做的是将数据(存储在数据库中的我的自定义用户昵称)传递给 LoginUserControl。这个登录是通过 Html.RenderPartial() 从母版页呈现的,所以我真正需要做的是确保每次调用都存在 ViewData["UserNickname"]。但我不想在每个控制器的每一个动作中填充 ViewData["UserNickname"],所以我决定使用这种方法并创建一个抽象的基础控制器来为我完成工作,如下所示:

这样,无论我的派生控制器做什么,用户信息都已经存在。

到现在为止还挺好。现在解决问题:

我不能调用 User.Identity.Name 因为User已经为空。在我的所有派生控制器中并非如此,因此这是特定于抽象基础控制器的。

我在代码中的另一个位置通过 FormsAuthentication 设置 User.Identity.Name ,但我认为这不是问题 - afaik User.Identity.Name 可以为空,但不是用户本身。

在我看来,HttpContext 不可用(因为也是 null ;-),而且我在这里遗漏了一个简单但重要的观点。谁能给我一些提示?我真的很感激。

0 投票
3 回答
27345 浏览

wcf - 什么是 HttpContext.Current.Request.RawUrl 的 WCF 等效项?

我有一些在纯 WCF 上下文中运行的 RESTful 服务(即未启用 ASP.NET 兼容性,因此没有HttpContext.Current可用的对象)。

服务的 URL 在请求开始时使用 an IHttpModule(此时确实有 anHttpContext并使用 重写它HttpContext.Current.RewritePath)重写,以摆脱.svcURL 中的扩展等内容。

但是,我需要访问从 WCF 基础结构中请求的原始 URL。HttpContext.Current.Request.RawUrl任何地方的OperationContext或类上是否有等价物WebOperationContext?使用WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri返回重写的 URL,而不是原始 URL。

0 投票
6 回答
18833 浏览

asp.net - 返回 null 时如何检索 HttpContext 属性?

我正在使用以下方法在单独的线程上进行一些异步工作:

在这个单独的线程中,我需要调用HttpContext.Current以便可以访问:

但是,HttpContext.Current当我创建这个单独的线程时为空。

问题

如何创建一个HttpContext.Current不为空的新线程?还是有其他方法可以访问 Cache、Server 和 Request 对象?

0 投票
1 回答
7476 浏览

c# - 使用 Moq 模拟 HttpContext Response.Output

我一直在使用Hanselman 博客中的 MvcMockHelpers 类来传递一个模拟的 HttpContext。我们对其进行了一些扩展,以添加一些我们需要的身份验证数据,并且在大多数情况下,这非常棒。

我们遇到的问题是我们提供给控制器的上下文在 HttpContext.Response.Output 中有一个空值,这会导致一些异常被抛出。我不确定要添加什么才能使其正常工作。

这是现有的 FakeHttpConext() 方法:

这是爆炸方法(它是 MVC Contrib 项目的 XmlResult 的一部分):

当引用 context.HttpContext.Response.Output 时,我需要在 FakeHttpContext 方法中添加什么来防止出现 null 异常?

澄清:我正在寻找的解决方案需要在 Moq 中完成,而不是 Rhino。我在问题标题中提到了起订量,但在问题正文中忽略了这一点。很抱歉有任何混淆。

解决 方法 我在 FakeHttpContext() 方法中添加了以下两行代码:

这可以防止空异常。不确定它是否是一个长期的好答案,但它现在有效。