在我的 Asp.Net Core 应用程序中,我想向我的 ClaimsIdentity 添加自定义声明,以便我可以在应用程序的不同层访问这些声明。为了实现这一点,我添加了以下代码
启动
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddTransient<IPrincipal>(
provider => provider.GetService<IHttpContextAccessor>().HttpContext.User);
services.AddTransient<IClaimsTransformation, ClaimsTransformer>();
Run Code Online (Sandbox Code Playgroud)
索赔变压器
public class ClaimsTransformer : IClaimsTransformation
{
private readonly IUnitOfWork _unitOfWork;
private readonly IPrincipal _principal;
public ClaimsTransformer(IUnitOfWork unitOfWork, IPrincipal principal)
{
_unitOfWork = unitOfWork;
_principal = principal;
}
public Task<ClaimsPrincipal> TransformAsync(ClaimsPrincipal principal)
{
var currentPrincipal = (ClaimsIdentity)_principal.Identity;
var identity = (ClaimsIdentity)principal.Identity;
if (currentPrincipal.Claims.All(p => p.Type != "UserId"))
{
var person = _unitOfWork.PersonRepository.GetPersonBySubjectId(principal.Claims.First(p => p.Type == "sub").Value);
person.Wait();
if (person.Result != null)
{
currentPrincipal.AddClaim(new Claim("UserId", person.Result.Id.ToString())); …Run Code Online (Sandbox Code Playgroud) identity claims-based-identity asp.net-core asp.net-core-identity asp.net-core-2.0
如何在当前位置将文本插入tinyMce edtitor.它在Chrome,FF,Safari中运行完美,但在IE中它总是从textarea的顶部开始.我目前正在做以下事情:
tinyMCE.execCommand('mceInsertContent',false, 'blabla this is tekst');
Run Code Online (Sandbox Code Playgroud)
我尝试了焦点,其他命令,没有任何作用:(.