小编iBo*_*onZ的帖子

ASP.NET Core 2.0.3 ClaimsTransformer 与 HttpContextAccessor 结合使用,声明正在被清除

在我的 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

5
推荐指数
1
解决办法
2944
查看次数

在当前位置TINYMCE IE9处插入文本

如何在当前位置将文本插入tinyMce edtitor.它在Chrome,FF,Safari中运行完美,但在IE中它总是从textarea的顶部开始.我目前正在做以下事情:

tinyMCE.execCommand('mceInsertContent',false, 'blabla this is tekst');
Run Code Online (Sandbox Code Playgroud)

我尝试了焦点,其他命令,没有任何作用:(.

tinymce internet-explorer-9

4
推荐指数
1
解决办法
6632
查看次数