标签: httpcontext

你能在Silverlight中做HtmlDecode和HtmlEncode吗?

如此以来,System.WebHttpContext是不是在Silverlight中可用,有没有办法做到HtmlDecodeHtmlEncode一个Silverlight应用程序里面没有一些可怕的正则表达式?

string silverlight html-encode httpcontext

16
推荐指数
1
解决办法
3792
查看次数

ASP.NET MVC:HTTPContext和依赖注入

目前我有一个ActionFilter,它从HttpContext获取当前用户名,并将其传递给在服务方法上使用它的操作.例如:

Service.DoSomething(userName);
Run Code Online (Sandbox Code Playgroud)

我现在有理由不在动作级别而是在控制器构造级别执行此操作.目前我正在使用结构图来创建控制器并注入服务.我正在寻找类似的东西:

public interface IUserProvider
{
    string UserName { get; }
}

public class HttpContextUserProvider : IUserProvider
{
    private HttpContext context;

    public HttpContextUserProvider(HttpContext context)
    {
        this.context = context;
    }

    public string UserName
    {
        get
        {
            return context.User.Identity.Name;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

也就是说,我的IoC foo非常弱,因为这是我用过的第一个项目.

所以我的问题是......如何告诉结构图在HttpContextUserProvider的构造函数中传递HttpContext?这看起来很奇怪......我不知道怎么想HttpContext.

structuremap asp.net-mvc dependency-injection httpcontext

16
推荐指数
2
解决办法
1万
查看次数

从工作线程使用MapPath

我有一个WCF服务方法,它在我从另一个方法旋转的工作线程中运行.
我需要将相对服务应用程序路径("〜/ Templates/a.template")映射到物理路径("D:\ Web\Templates\a.template"),但我无法使用HttpContext.Current.Server.MapPath因为HttpContext.Current在工人线程.我怎么能达到MapPath方法?

谢谢!安德烈

asp.net wcf server.mappath httpcontext

16
推荐指数
2
解决办法
3904
查看次数

在不使用HttpContext.Current的情况下确定URL主机名?

使用当前请求,我可以获取URL主机名:

HttpContext.Current.Request.Url.Host
Run Code Online (Sandbox Code Playgroud)

但是 - 我需要在不使用当前请求(HttpContext.Current)的情况下确定URL主机名.这样做的原因是我的代码是SqlDependency在onChange回调中从a 中调用的,当时发现了SQL依赖关系.虽然代码驻留在我的Web应用程序中,但没有请求,并且HttpContext.Current为null.

我希望我可以抓住它HttpRuntime,但似乎没有什么用处.有没有办法可以获得这些信息?

c# asp.net httpcontext

15
推荐指数
2
解决办法
2万
查看次数

需要在单元测试中添加自定义标头以进行请求

我终于能够HttpContext.Current通过在线查找一些代码来获得不为空.但我仍然无法在单元测试中向请求添加自定义标头.这是我的测试:

[TestClass]
public class TagControllerTest
{
    private static Mock<IGenericService<Tag>> Service { get; set; }
    private TagController controller;

    [TestInitialize]
    public void ThingServiceTestSetUp()
    {
        Tag tag = new Tag(1, "people");
        Response<Tag> response = new Response<Tag>();
        response.PayLoad = new List<Tag>() { tag };

        Service = new Mock<IGenericService<Tag>>(MockBehavior.Default);
        Service.Setup(s => s.FindAll("username", "password", "token")).Returns(response);

        controller = new TagController(Service.Object);
        HttpContext.Current = FakeHttpContext();
    }

    public static HttpContext FakeHttpContext()
    {
        var httpRequest = new HttpRequest("", "http://kindermusik/", "");
        var stringWriter = new StringWriter();
        var httpResponce = new …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing httprequest httpcontext asp.net-apicontroller

15
推荐指数
2
解决办法
1万
查看次数

在Ninject 2中注入HttpContext

在我的asp.net mvc应用程序中,我使用Ninject作为DI框架.

我的控制器使用我的HttpAccountService从cookie获取信息.为此,我需要HttpAccountService中的HttpContext.Current.由于这是一个依赖项,我通过构造函数注入它:

kernel.Bind<IAccountService>()
    .To<HttpAccountService>()
    .InRequestScope()
    .WithConstructorArgument("context", HttpContext.Current);
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这总是绑定到相同的上下文,这使得在第一个请求完成后,这个上下文变得过时了.

我应该如何正确地注入我的HttpContext?

dependency-injection ninject httpcontext

14
推荐指数
1
解决办法
3670
查看次数

单元测试Web服务 - HttpContext

我想为Web服务编写单元测试.我创建我的测试项目,引用我的web项目(不是服务引用,程序集引用),然后编写一些代码来测试Web服务 - 它们工作正常.但是,有一些服务可确保用户使用登录Web应用程序HttpContext.Current.User.Identity.IsAuthenticated.

在测试的上下文中,没有HttpContext这样的东西,所以测试总是失败.这些Web服务应该如何进行单元测试?

asp.net unit-testing httpcontext

14
推荐指数
1
解决办法
6928
查看次数

HttpContext和SignalR HubCallerContext之间的统一静态类

我有很多依赖于HttpContext.Current的代码,我注意到来自SignalR集线器的请求有HttpContext.Current == null,所以我的代码断了,例如:

HttpContext.Current.Request.IsAuthenticated
Run Code Online (Sandbox Code Playgroud)

所以我想出了以下内容:

public static class UnifiedHttpContext
    {
        private static HubCallerContext SignalRContext { get; set; }

        private static int SignalRUserId 
        {
            get { return WebSecurity.GetUserId(SignalRContext.User.Identity.Name); }
        }

        private static bool IsSignalRRequest
        {
            get { return SignalRContext != null; }
        }

        public static void SetSignalRContext(HubCallerContext context)
        {
            SignalRContext = context;
        }

        public static bool IsAuthenticated
        {
            get
            {
                if (!IsSignalRRequest)
                {
                    return System.Web.HttpContext.Current.Request.IsAuthenticated;
                }
                else
                {
                    return SignalRContext.User.Identity.IsAuthenticated;
                }
            }
        }

        public static int UserId
        {
            get …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc httpcontext signalr

14
推荐指数
2
解决办法
4428
查看次数

HttpContext.Current.Session不明确的行为布尔值

我有一个奇怪的行为试图获取存储在HttpContext.Current.Session的布尔属性的值.

该对象是一个布尔值.首先,我试图检查对象是否存在,如果存在,则使用它.

我试图在?:运算符中使用它,但它表现得很奇怪.这是我的Watch窗口: 来自VisualStudio的观察者

前提

  • "ExistingKey"键存在并且具有值为false(如果键不存在返回false).

结果

  1. 检查!=null它是否返回false(第一件事很奇怪).
  2. 当使用?:运算符时,除了条件为假之外,它还返回第一个表达式4(第二个奇怪的东西).

有人能解释一下这种行为吗?


注意:我不是要求绕过这种情况的替代方案.只是问为什么这样的工作原理.

c# asp.net session httpcontext conditional-operator

14
推荐指数
1
解决办法
784
查看次数

Task.Run中的ASP.NET HttpContext.Current

我有一个在ASP.NET MVC应用程序中使用的以下代码示例.此代码的目的是为排队一些长时间运行的操作创建"即发即弃"请求.

public JsonResult SomeAction() {
   HttpContext ctx = HttpContext.Current;            

   Task.Run(() => {
       HttpContext.Current = ctx;
       //Other long running code here.
   });

   return Json("{ 'status': 'Work Queued' }");
}
Run Code Online (Sandbox Code Playgroud)

我知道这不是在异步代码中处理HttpContext.Current的好方法,但是目前我们的实现不允许我们做其他事情.我想了解这段代码有多危险......

问题:理论上可以在Task.Run中设置HttpContext,将上下文设置为另一个请求吗?

我想是的,但我不确定.我是如何理解的:Request1是从线程池中的Thread1处理的,然后当Thread1绝对处理另一个请求(Request2)时,Task.Run中的代码将设置从Request1到Request2的上下文.

也许我错了,但我对ASP.NET内部的了解不允许我正确地理解它.

谢谢!

asp.net asp.net-mvc asynchronous httpcontext threadpool

14
推荐指数
2
解决办法
4929
查看次数