首页 > 解决方案 > 使用 OData 控制器访问当前 UserId 和 TenantId

问题描述

我已根据文档将 Odata 添加到我的 asp.net 核心样板项目中:https ://aspnetboilerplate.com/Pages/Documents/OData-AspNetCore-Integration

如何访问 AbpODataEntityController 中的 Current TenantId 和 UserId?

标签: odataaspnetboilerplate

解决方案


您可以查看此示例代码。

public class MyODataController : Abp.AspNetCore.OData.Controllers.AbpODataEntityController<User, long>, ITransientDependency
{
    private readonly UserManager _userManager;

    public MyODataController(IRepository<User, long> repository, UserManager userManager) : base(repository)
    {
        _userManager = userManager;
    }

    public long? GetCurrentUserId()
    {
        return _userManager.AbpSession.UserId;
    }

    public int? GetCurrentTenantId()
    {
        return _userManager.AbpSession.TenantId;
    }
}

PS:不要忘记从 ITransientDependency 继承,以便它注册到依赖服务。


推荐阅读