我正在编写一个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.Current
或System.Threading.Thread.CurrentPrincipal
它们始终为空。