Session ASP.NET零会话管理
我对ASP.NET核心和DDD(域驱动设计)完全陌生。我最近购买了启动模板,以减轻开始时的痛苦和学习过程。我喜欢这个项目,但我在会话状态方面有困难 我在应用程序中使用第三方组件,如 我需要一种方法将当前会话ID和协议从它们各自的控制器传递到其中几个组件。在ASP.NETMVC中,使用Session ASP.NET零会话管理,session,asp.net-core,aspnetboilerplate,neodynamic,Session,Asp.net Core,Aspnetboilerplate,Neodynamic,我对ASP.NET核心和DDD(域驱动设计)完全陌生。我最近购买了启动模板,以减轻开始时的痛苦和学习过程。我喜欢这个项目,但我在会话状态方面有困难 我在应用程序中使用第三方组件,如 我需要一种方法将当前会话ID和协议从它们各自的控制器传递到其中几个组件。在ASP.NETMVC中,使用HttpContext.Session.Id和HttpContext.Request.Scheme相对容易。在ASP.NET核心中,这似乎有点令人困惑 有人能帮我开始吗?UserManager类提供当前用户的信息 例
HttpContext.Session.Id
和HttpContext.Request.Scheme
相对容易。在ASP.NET核心中,这似乎有点令人困惑
有人能帮我开始吗?
UserManager
类提供当前用户的信息
例如:
public async Task<string> GetCurrentUserName()
{
var user = await UserManager.FindByIdAsync(AbpSession.GetUserId().ToString());
return user.UserName;
}
Microsoft.AspNetCore.Session
包提供了管理会话状态的中间件
在启动
类中调用AddSession()
和UseSession()
:
公共类启动
{
公共IServiceProvider配置服务(IServiceCollection服务)
{
services.AddMvc();
//添加IDistributedCache的默认内存内实现。
AddDistributedMemoryCache();
services.AddSession();
// ...
}
公共无效配置(IApplicationBuilder应用程序,IHostingEnvironment环境)
{
// ...
app.UseSession();
app.UseMvc(…);
}
}
参考资料:我可以实现如上所示的IAbpSession,它可以很好地工作。我遇到的问题是,我需要传递一个绝对Url以及当前会话ID以进行回发。下面是一个使用Neodynamic WebPrintClient`public ActionResult index(){ViewData[“WCPPDetectionSript”]=Neodynamic.SDK.Web.WebClientPrint.CreateWcppDetectionScript(Url.Action(“ProcessRequest”,“WebClientPrintAPI”),null,Url.ActionContext.HttpContext.Request.Scheme)的示例,Url.ActionContext.HttpContext.Session.Id);返回视图();}`
public class TestClass
{
private readonly IAbpSession _abpSession;
private readonly UserManager _userManager;
public TestClass(
IAbpSession abpSession,
UserManager userManager)
{
_abpSession = abpSession;
_userManager = userManager;
}
}