标签: httpcontext

Asp.Net Mvc无法注销

这是我的代码登录

 var expire = DateTime.Now.AddDays(7);
        // Create a new ticket used for authentication
        var ticket = new FormsAuthenticationTicket(
        1, // Ticket version
        username, // Username to be associated with this ticket
        DateTime.Now, // Date/time issued
        expire, // Date/time to expire
        true, // "true" for a persistent user cookie (could be a checkbox on form)
        roles, // User-data (the roles from this user record in our database)
        FormsAuthentication.FormsCookiePath); // Path cookie is valid for

        // Hash the cookie for transport over …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc forms-authentication httphandler httpcontext

5
推荐指数
1
解决办法
8734
查看次数

异步HTTP处理程序和后台线程中使用HttpContext?

我正在阅读演练:创建异步HTTP处理程序并注意到它们HttpContext从处理程序线程传递并在WaitCallback后台线程上运行它.它会像打电话一样_context.Response.Write().我是否正确假设这不违反HttpContext不是线程安全的事实,因为处理程序线程在异步工作开始后不会使用它?

此外,跨线程使用HTTPContext有一些关于HttpContext和线程的好信息.是不是所有的HttpContext都不是线程安全的,或只是像ResponseItems如果仅在读取模式下,多个后台线程可以访问该属性吗?

asp.net multithreading httpcontext thread-safety

5
推荐指数
1
解决办法
2848
查看次数

我可以从ASP.NET应用程序外的ASP.NET页面对象中呈现html吗?

我不是在谈论使用'ApplicationHost'类托管ASP.NET.例如,如果我创建一个Console应用程序,创建一个有效的HttpContext对象并将其传递给自定义Page对象的ProcessRequest,它是否会填充HttpReponse html,就好像它在ASP.NET中运行一样?

.net c# asp.net httprequest httpcontext

5
推荐指数
1
解决办法
1484
查看次数

HttpContext的线程安全性

经过一段时间的谷歌搜索后,我还没有找到任何关于HttpContext的线程安全性的权威,确凿的信息.

我正在看一个场景,例如:

public class AsyncHandler : IAsyncHttpHandler 
{
   void BeginProcessRequest(...)
   {
      // Spawn some tasks in parallel, provide them with current HttpContext as argument.
   }

   void EndProcessRequest(...) {...}
}
Run Code Online (Sandbox Code Playgroud)

My(io bound)并行任务可能希望同时访问HttpContext.

看看各个帖子似乎这是安全的,但是,我想要一些实际的证据.当然MSDN给出了通常的"静态线程安全等",但除了我必须假设它不是线程安全之外,这没有任何帮助.

我在StackOverflow上看过各种帖子(比如这里,或者这里,或者这里),但这个问题没有真正的答案.

使用.NET 4.5中的所有异步工作,如果HttpContext不是线程安全的话,这似乎有点奇怪,但是,如果确实不是这样,有没有办法让它成功呢?我能想到:

  • 克隆它(但这不是那么容易,虽然乍一看似乎不太可能).
  • 包装HttpContextBase并使这个线程安全(嘿,我称之为HttpContextWrapperWrapper).

但这一切都感觉有点糟糕和太多的工作.

编辑:在更详细地研究这个,以及稍后的一些反思后,我相信它实际上并不重要HttpContext不是线程安全的.我在这篇博文中详述了这一点.要点是在ASP.NET中使用正确的SynchronizationContext可确保一次只能有一个线程访问上下文.

.net c# asp.net multithreading httpcontext

5
推荐指数
1
解决办法
2144
查看次数

如何在Container实例上释放和处置所有Http范围的对象?

在StructureMap中,如何在特定的Container实例上释放和处理Http范围的对象?对于Object Factory中的默认intance,我可以执行该方法ReleaseAndDisposeAllHttpScopedObjects(),但Container类和IContainer接口似乎没有这样的方法.

c# structuremap httpcontext

5
推荐指数
1
解决办法
1627
查看次数

GetHashCode在这里只是货物崇拜吗?

HttpContext.Current.Items["ctx_" + HttpContext.Current.GetHashCode().ToString("x")]
Run Code Online (Sandbox Code Playgroud)

我看到这个确切的代码 ... ...... ...... 的地方,但我必须忽视的东西.在回答这些帖子时常常质疑使用HttpContext的适当性,但没有人指出GetHashCode是冗余的,固定字符串也可以.

我在这里俯瞰什么?


编辑:问题是,每个HttpContext.Current的GetHashCode()都是相同的,那么为什么在我提供的四个链接中使用GetHashCode()?其中一些是有相当多工作的帖子,所以我觉得他们可能正在解决我忽略的一些线程或上下文问题.我不明白为什么只是HttpContext.Current.Items ["ctx_"]不会完全相同.

asp.net asp.net-mvc httpcontext thread-safety

5
推荐指数
1
解决办法
171
查看次数

HttpContext.Current.User.Identity.Name返回错误的用户名

它是使用SQL Membership Provider进行身份验证的Plain ASP.NET应用程序.虽然应用程序在大多数时间运行良好.我们最近看到用户抱怨他们正在看到其他用户帐号.

我很确定并再次确认我直接在代码中使用HttpContext.Current.User.Identity.Name来获取用户信息.因此,在重负载下,我会返回不同的用户名.

有没有人遇到类似的问题?有可能吗?

应用程序运行在ASP.NET 4.0,Web窗体,无缓存,代码中没有处理任何cookie,没有嗅探cookie的Javascripts.

我看到这两个链接大致相同但没有回答.

http://bytes.com/topic/asp-net/answers/324385-serious-issue-httpcontext-current-user-identity-name

http://www.experts-exchange.com/Web_Development/Miscellaneous/Q_21105924.html

asp.net httpcontext

5
推荐指数
1
解决办法
3554
查看次数

Request.IsAuthenticated永远不会是真的

我有一个HttpModule应该限制​​访问/courses/我的网站目录的实现,但它有一个主要问题.

Request.IsAuthenticated永远false.

这是代码:

using System;
using System.Web;

public class CourseAuthenticationModule : IHttpModule
{
    public void Dispose() { }

    public void Init(HttpApplication context)
    {
        context.BeginRequest += new EventHandler(BeginRequest);
    }

    public void BeginRequest(Object source, EventArgs e)
    {
        HttpApplication app = (HttpApplication)source;
        HttpContext context = app.Context;
        HttpRequest request = context.Request;
        HttpResponse response = context.Response;

        if (request.Path.ToLower().StartsWith("/courses/") 
            && !request.IsAuthenticated)

        {
            response.Redirect("/");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会发生这种情况,但条件总是true在访问/courses/目录时进行评估.

编辑:

我在Web.Config中找到了这个.不确定它是否相关.

<authentication mode="Forms">
  <forms loginUrl="userlogin.asp" …
Run Code Online (Sandbox Code Playgroud)

asp.net authentication httpmodule httprequest httpcontext

5
推荐指数
1
解决办法
788
查看次数

ASP.NET Web Api中HttpContext.Current.Items的替代方法

有一个非System.Web/HttpContext替代HttpContext.Current.Items,每请求数据存储?

我想保存请求的信息,保存它们并从我的记录器(NLog)中读取值.我发现一个好地方是DefaultHttpControllerActivator/IHttpControllerActivator.

这样,日志消息应始终看起来相同,并且开发人员对提供的格式或信息没有太大影响.

编辑:经过一些研究后我发现了这一点: 我们如何为异步.net方法创建一个callcontext? 我希望使用具有不可变集合的逻辑调用上下文将按预期工作.

c# nlog httpcontext asp.net-web-api

5
推荐指数
1
解决办法
2529
查看次数

如何在服务器端Blazor中访问HttpContext?

我需要访问HttpContext页面(.cshtml),尤其是访问请求和Cookie。尽管可用,但 HttpContextAccessor始终在其属性中存储一个HttpContext

任何想法将不胜感激。

提前致谢。

编辑:我使用的Blazor版本是:0.7.0。

cookies httpcontext blazor

5
推荐指数
4
解决办法
2499
查看次数