Tag: session

nHibernate会话和multithreading

我有一个方法,有很多持久性调用使用nHibernate会话,它工作,没关系。 但是出于multithreading的原因,我需要重构这个方法,从循环内的内容中提取方法。 然后我用这个方法创建了一个类。 它就像一个正常的重构,但是这个方法调用中的nHibernate会话被破坏了,没有上下文,我没有随时完成它。 multithreading有nHibernate问题吗? 即使我只有一个线程正在执行,我也有同样的问题。 我通过SessionFactory和Façade模式使用nHibernate Session,这意味着,会话不是这些对象的字段,它在SessionFactory是全局的。 让它更清晰一点: 之前: Method() { … persistence calls foreach(Thing..) { …persistence calls for each thing (1) } … } 后: Method() { … persistence calls foreach(Thing..) { create a thingResolver object with some data open a new thread with thingResolver.Method (1) starts this thread } .. waits for […]

授权和ASP.NET MVC缓存

我对ASP.NET MVC缓存和授权感到困惑,并且急需一些澄清。 我的自制授权属性inheritance自AuthorizeAttribute 。 即使我在控制器操作上设置了[OutputCache]属性,它每次都会运行其重写的AuthorizeCore方法。 我明白那一部分。 现在让我心烦意乱:当我实际执行输出缓存并且页面是从缓存提供时, AuthorizeCore每次都会失败 。 原因是当缓存请求时, httpContext.Session提供的httpContext.Session为null ! 这是一些简化的代码: protected override bool AuthorizeCore(HttpContextBase httpContext) { return (Session[“userId”] != null) } 因此,如果httpContext.Session为null ,则每次都会失败。 我需要访问会话,如何检查请求是否被授权? 这没有任何意义 – 如果它应该如此,那么我永远无法在ASP.NET MVC中使用缓存页面和身份validation。 救命?

通过静态对象的静态属性访问asp.net会话变量是否安全?

通过静态对象的静态属性访问asp.net会话变量是否安全? 这就是我的意思: public static class SessionHelper { public static int Age { get { return (int)HttpContext.Current.Session[“Age”]; } set { HttpContext.Current.Session[“Age”] = value; } } public static string Name { get { return (string)HttpContext.Current.Session[“Name”]; } set { HttpContext.Current.Session[“Name”] = value; } } } userA可以通过这种方式访问​​userB的会话数据吗?

重新连接到asp.net MVC4应用程序中的Servicestack会话

我有一个asp.net mvc4 Web应用程序,它使用C#编写的API消耗数据数据,并在Apache / mod_mono的Linux机器上托管 客户端应用程序是用C#/ asp.net编写的 – 它运行在不同的Web服务器上,也就是Linux / Apache / mod_mono。 我不确定这些细节在这种情况下是否重要,但我认为任何背景都可能有所帮助。 导致这个问题的问题: AppHostBase实例未设置 – 帮助我更加了解这一切是如何组合在一起的。 我相信我现在应该问的正确问题是: 一旦我在servicestack中创建会话(在API服务器上),我该如何正确地重新连接它? 根据之前问题的答案,我在客户端应用程序的auth控制器中使用了这段代码: var authService = AppHostBase.Resolve(); authService.RequestContext = System.Web.HttpContext.Current.ToRequestContext(); var AuthResponse = authService.Authenticate(new Auth { provider = “credentials”, UserName = user.user_id, Password = user.password, RememberMe = true }); 这将返回一个ResolutionException: 无法解析ServiceStack.ServiceInterface.Auth.AuthService类型所需的依赖项。 在让客户端在asp.net应用程序中工作时,我可能会缺少一些简单的东西吗? 如果问题太模糊,我会道歉,并乐意提供更多信息。 更新: 这是AuthController – 请原谅这个混乱,自从我上一篇文章以来,我一直在尝试一些事情: […]

如何使用Nhibernate在asp.net mvc中实现session-per-request模式

我在global.asax文件的Application_start事件中创建了nhibernate会话,该会话被传递给服务方法的构造函数。 在服务方法我使用会话来做CRUD操作,这很好。但是,当多个请求或并行事务发生时,nhibernate会抛出一些exception。阅读论坛后我才知道Nhibernate会话不是线程安全的。如何使它的线程安全,让我的应用程序(ASP.NET mvc)使用并行trandsactions?

检测ASP.NET MVC上的会话到期

我建立了一个购物车,使用会话状态来保存购物车数据,同时用户正在浏览商店。 我有一个问题,如果我在购物车的step1上长时间打开浏览器窗口,然后按“转到第2步”,我的操作会抛出错误,因为step2操作假定会话未过期且ShopCart对象处于正确状态。 我希望这个场景对我的用户更好,但我想我需要以某种方式检测会话是否已过期,以便在下一个请求时我可以将它们抛给Step1。 我发现以下代码声称要解决问题,但它对我不起作用。 IsNewSession条件为真,但条件 if ((null != sessionCookie) && (sessionCookie.IndexOf(“ASP.NET_SessionId”) >= 0)) { // handle expired session } 始终返回false,它永远不会处理无效会话。 我糊涂了。 这在ASP.NET(和MVC)中是否可行?

如何终止会话或会话ID(ASP.NET / C#)

当用户单击注销按钮时,如何销毁会话(Session [“Name”])? 我正在浏览MSDN上的ASP.NET API参考,它似乎没有太多信息。 看起来相当有限。 但我找不到ASP.NET类等的任何其他页面。 我试过了: Session.Abandon(); 和Session.Contents.Remove(“Name”); 它们都不起作用。 (我在谷歌搜索的论坛中发现了这些)

如何在PHP和ASP.net应用程序之间共享会话?

我的公司拿了一些旧的php应用程序。 由于我们偏爱ASP.net并且缺乏先前开发人员的任何文档,我们不希望花费太多资源来开发PHP。 为了实现新function,我们将创建一个与用户具有相同外观的Asp.net应用程序。 我们希望开发一种“共存”的Web应用程序。 因此,我们必须在PHP和Asp.net webapplication项目之间共享会话,因为存在涉及现有MySQL数据库的用户管理。 (例如,链接’A’指向PHP网站,链接’B’指向asp.net应用程序) 我们如何在PHP和asp.net应用程序之间共享会话? 有没有人对这种“共存”的东西有所暗示,这可能对开发有用吗? 编辑 :IIS 6将是我们的目标服务器,尽管IIS 7.5也是一个选项