如您所知,akavache在其iOS和Android上的安全存储方面存在问题。 我想覆盖Akavache使用的安全存储。Akavache安全覆盖不起作用
我一直在下面由Kent给出解决这个问题的例子: http://kent-boogaart.com/blog/password-protected-encryption-provider-for-akavache
注:我不能在我的代码中使用System.Security.Cryptography
,因为我们使用的PCL的。因此我使用PCLCrypto
。
我使用安装类初始化DI:
IPasswordProtectedEncryptionProvider providerInstance = new PasswordProtectedEncryptionProvider();
providerInstance.SetPassword("test");
Splat.Locator.CurrentMutable.Register(() => providerInstance, typeof(Akavache.IEncryptionProvider));
Container.RegisterSingleton<ICache>(new CacheManager());
我用PasswordProtectedEncryptionProvider
为IEncryptionProvider
我的自定义替代。但是在类中覆盖的方法DecryptBlock
EncryptBlock
不会被调用!
不明白为什么它不被称为。
是不是() => providerInstance
重写它?
谢谢你的回复@rdavisau。当您提到LIFO问题时,您会引导我到最后的解决方案。我改变了你的答案,例如如何解决具体问题。 – cfl