在单独的项目中获取ClaimsPrincipal

时间:2018-02-13 01:10:20

标签: c# asp.net-core asp.net-identity identity claims-based-identity

我正在编写一个aspnet core 2.0应用程序。使用承载令牌认证我在控制器内部具有User属性,具有正确的标识。如何访问分离的.net标准项目中的User属性或ClaimPrincipal以获取业务逻辑?

ASP.NET核心项目:

//ASP.NET Core project
public class DocumentController : Controller
{
    public IActionResult Index()
    {
        System.Security.Claims.ClaimsPrincipal cp = User;

        /* check for claims in ClaimsPrincipal */

        DocumentBL docBL = new DocumentBL();
        docBL.BLmethodForDocument();

        return View();
    }
}

分离的.net标准项目:BL.dll

我的ASP.NET核心项目依赖于BL.dll

//Separated project: BL.dll
public class DocumentBL
{
    public void BLmethodForDocument()
    {
        System.Security.Claims.ClaimsPrincipal cp = ???????????

        /* check for claims in ClaimsPrincipal */

        //rest of business logic...
    }
}

如何修复BLmethodForDocument以使用当前ClaimsPrincipal而不将其作为参数传递给bl方法(并且不将它传递给DocumentBL构造函数)?

无法使用System.Security.Claims.ClaimsPrincipal.CurrentSystem.Threading.Thread.CurrentPrincipal它们始终为空。

0 个答案:

没有答案