Моя реализация IDataProtector не называется - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь использовать собственную реализацию IDataProtector в приложении ASP. NET MVC. Я написал очень простую реализацию:

internal class AsymDataProtector : IDataProtector
{
    public AsymDataProtector(string appName, string[] purposes)
    {

    }

    public byte[] Protect(byte[] userData)
    {
        return CryptographyHelper.Encrypt(userData);
    }

    public byte[] Unprotect(byte[] protectedData)
    {
        return CryptographyHelper.Decrypt(protectedData);
    }
}

public class AsymDataProtectionProvider : IDataProtectionProvider
{
    private readonly string _appName;

    public AsymDataProtectionProvider() : this(Guid.NewGuid().ToString())
    {
    }

    public AsymDataProtectionProvider(string appName)
    {
        if (appName == null)
        {
            throw new ArgumentNullException("appName");
        }
        _appName = appName;
    }

    public IDataProtector Create(params string[] purposes)
    {
        if (purposes == null)
        {
            throw new ArgumentNullException("purposes");
        }
        return new AsymDataProtector(_appName, purposes);
    }
}

Я регистрирую его с моим ApplicationUserManager.Create() следующим образом:

 manager.UserTokenProvider = 
                new DataProtectorTokenProvider<ApplicationUser>(new AsymDataProtectionProvider().Create("ASP.NET Identity"));

Однако ни мои Encrypt(), ни Decrypt() не являются

Я думаю, что пропускаю шаг, чтобы зарегистрировать мою реализацию IDataProtector, но ничего не нашел. Как вы используете пользовательский IDataProtector вместо DpapiDataProtector?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...