Tag: session

“会议已结束!” – NHibernate

这是在Web应用程序环境中: 初始请求能够成功完成,但是任何其他请求都会从NHibernate框架返回“Session is Closed”响应。 我正在使用HttpModule方法,代码如下: public class MyHttpModule : IHttpModule { public void Init(HttpApplication context) { context.EndRequest += ApplicationEndRequest; context.BeginRequest += ApplicationBeginRequest; } public void ApplicationBeginRequest(object sender, EventArgs e) { CurrentSessionContext.Bind(SessionFactory.Instance.OpenSession()); } public void ApplicationEndRequest(object sender, EventArgs e) { ISession currentSession = CurrentSessionContext.Unbind( SessionFactory.Instance); currentSession.Dispose(); } public void Dispose() { } } SessionFactory.Instance是我的单例实现,使用FluentNHibernate返回一个ISessionFactory对象。 在我的存储库类中,我尝试使用以下语法: public […]

何时在WCF服务中调用析构函数

我需要创建一个维护WCF会话的服务。 在构造函数中,我从数据库中读取数据,当会话结束时,我必须将其保存回来。 如果我理解正确,当我在客户端上调用Close()时会话结束(我的客户端ServiceClient是使用SvcUtil.exe创建的)。 当我测试它时,我发现它有时在大约后被调用。 10分钟,有时20分钟后,有时甚至根本没有。 那么析构函数何时被调用? 服务 [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] public class Service:IService { private User m_User = null; public Service() { m_User = User.LoadFromDB(); } ~Service() { m_User.SaveToDB(); } public void SetName(string p_Name) { m_User.Name = p_Name; } } Web.config文件 客户 ServiceClient serviceClient = null; try { serviceClient = new ServiceClient(); serviceClient.SetName(“NewName”); Console.WriteLine(“Name set”); […]

无法在ASP.Net vNext项目中使用会话

我有一个使用Session的ASP.Net vNext项目。 但是我在尝试获取/设置会话中的值时收到此错误。 Microsoft.AspNet.Http.Core.dll中出现“System.InvalidOperationException”类型的exception,但未在用户代码中处理 附加信息:尚未为此应用程序或请求配置会话。 这是我的控制器方法: [AllowAnonymous] [HttpGet(“/admin”)] public IActionResult Index() { if (Context.Session.GetString(“UserName”) == null) // error thrown here { return RedirectToAction(“Login”); } return View(); } 我在我的project.json文件中添加了KVM软件包”Microsoft.AspNet.Session”: “1.0.0-beta3” ,并将我的应用程序配置为通过我的Startup.cs使用session,如下所示: public void ConfigureServices(IServiceCollection services) { // code removed for brevity services.AddCachingServices(); services.AddSessionServices(); } public void Configure(IApplicationBuilder app) { app.UseMvc(); app.UseInMemorySession(configure: s => s.IdleTimeout = TimeSpan.FromMinutes(30)); […]

如何防止用户从多个位置或同一台PC上的不同浏览器登录

我正在创建一个用户无法尝试多次登录的应用程序。 如果特定用户登录,我的数据库标志值将设置为1 ,这意味着没有其他具有相同用户名和密码的成员可以登录。 如果用户注销我的数据库标志值设置为0 。 这一切都运行良好但现在我有一个不同的问题,即当用户突然关闭浏览器而没有注销页面或会话超时然后自动数据库标志值应设置为0 。 现在我不知道该怎么做。 请给我任何解决方案。

Global.asax中的ASP.NET C#Application_Error无法访问Session变量

我有我的error handling设置来跟踪所有exception,并将我们需要的信息写入数据库,并通过电子邮件发送出需要了解错误的开发人员以便修复它。 我遇到的问题是在页面完全加载之前发生错误。 在这种情况下,我要跟踪的会话变量在Application_Error中不可用。 因此,我执行以下操作以便在error handling中不会出现错误,但必须有更好的方法。 此外,如果页面加载并且在提交表单时发生错误,则会话变量可用。 try { user_name = System.Web.HttpContext.Current.Session[“User_Name”].ToString(); user_number = System.Convert.ToInt32(System.Web.HttpContext.Current.Session[“User_Number”].ToString()); } catch (Exception ex) { user_number = 0; user_name = “N/A”; } 任何帮助是极大的赞赏。 谢谢!

如何创建C#会话对象包装器?

如何创建一个类库,我可以在其中获取和设置IIS Session对象,我使用var x = objectname(“key”)获取值或objectname(“key”) = x来设置值?

Roslyn,通过hostObject传递值

我试图通过hostObject发送一个类,但显然它不想工作: using Roslyn.Compilers; using Roslyn.Compilers.CSharp; using Roslyn.Scripting; using Roslyn.Scripting.CSharp; public class ShippingService { public class ShippingDetails//class that I want to send { public decimal total { get; set; } public int quantity { get; set; } public string destination { get; set; } } public static string ShipingCost(decimal total, int quantity, string destination) { var […]

从会话0(服务)启动提升的用户流程

大家早, 这个问题似乎已被问过几次,但我无法确定它是否真的有可能。 我已经在这里发布了 没有回复 – 让我们试试这里的人。 我的目标是从当前用户上下文中的服务启动一个提升的进程(作为管理员)(仅当它们在本地管理员组中时)。 我可以毫无问题地获得当前用户令牌,但我无法获得该帐户的辅助/管理员令牌! 我已经阅读了很多论坛,但却无法让它工作(开始认为它不可行)。 我目前的方法: WTSGetActiveConsoleSessionId – 获取活动会话ID WTSQueryUserToken – 获取会话ID的用户令牌 检查令牌是否为admin – 不是。 OpenProcess – 登录用户的explorer.exe的进程句柄 OpenProcessToken – 获取访问令牌的句柄 LookupPrivilegeValue – SE_DEBUG确认我们可以调整令牌权限 DuplicateTokenEx – 用户令牌 SetTokenInformation AdjustTokenPrivileges CreateEnvironmentBlock – 在中运行新进程 CreateProcessAsUser – 希望在提升的用户上下文中生成进程(未发生 – 标准用户上下文) 请参阅下面的代码 – 道歉它的混乱,需要整理,所有句柄都关闭。 这只是目前的经验代码。 public static bool CreateProcessInConsoleSession(String CommandLine, bool bElevate) { PROCESS_INFORMATION pi; […]

Web应用程序中的静态变量

我可以在Web应用程序中使用静态变量吗? 什么是静态的替代品? 当我在页面中使用静态变量并且多个用户使用该应用程序时,它会产生冲突数据(不正确的数据)。 使用静态成员有什么限制? 静态成员是否在内存中共享?

如何在OWIN ASP.NET MVC5中注销用户

我有一个ASP.NET MVC5项目的标准AccountController类。 当我尝试注销用户时,我面临一个错误,因为HttpContext为null 。 (我的意思是HttpContext .GetOwinContext()。身份validation为空) 因此我无法了解会话结束时我们如何注销用户… 在global.asax我得到了这个 protected void Session_Start(object sender, EventArgs e) { Session.Timeout = 3; } protected void Session_End(object sender, EventArgs e) { try { var accountController = new AccountController(); accountController.SignOut(); } catch (Exception) { } } 的AccountController public void SignOut() { // Even if I do It does not help coz […]