首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maui的安全存储

Maui的安全存储
EN

Stack Overflow用户
提问于 2022-10-06 07:04:41
回答 1查看 218关注 0票数 1

当我调用我的Set方法时,我会得到FileNotFound异常。我检查了文档,但没有看到任何特定的实现(除了清单文件中的两个额外值)。

这是我的密码

代码语言:javascript
复制
public async Task SetAsync(string key, string value)
{
  await SecureStorage.SetAsync(key, value);
}

这是androidmanifest.xml

代码语言:javascript
复制
 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="31" />
    <application android:allowBackup="false" android:icon="@mipmap/appicon" android:exported="false" android:fullBackupContent="false" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true">
    </application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>

这里是个例外

代码语言:javascript
复制
    [monodroid-assembly] open_from_bundles: failed to load assembly Xamarin.AndroidX.Security.SecurityCrypto.dll
Loaded assembly: /data/data/com.abc.mypp.test/files/.__override__/Xamarin.AndroidX.Security.SecurityCrypto.dll [External]
[AndroidKeysetManager] keyset not found, will generate a new one
[AndroidKeysetManager] java.io.FileNotFoundException: can't read keyset; the pref value __androidx_security_crypto_encrypted_prefs_key_keyset__ does not exist
[AndroidKeysetManager]  at com.google.crypto.tink.integration.android.SharedPrefKeysetReader.readPref(SharedPrefKeysetReader.java:71)
[AndroidKeysetManager]  at com.google.crypto.tink.integration.android.SharedPrefKeysetReader.readEncrypted(SharedPrefKeysetReader.java:89)
[AndroidKeysetManager]  at com.google.crypto.tink.KeysetHandle.read(KeysetHandle.java:116)
[AndroidKeysetManager]  at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.read(AndroidKeysetManager.java:311)
[AndroidKeysetManager]  at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.readOrGenerateNewKeyset(AndroidKeysetManager.java:287)
[AndroidKeysetManager]  at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.build(AndroidKeysetManager.java:238)
[AndroidKeysetManager]  at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:155)
[AndroidKeysetManager]  at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:120)
[AndroidKeysetManager] keyset not found, will generate a new one
[AndroidKeysetManager] java.io.FileNotFoundException: can't read keyset; the pref value __androidx_security_crypto_encrypted_prefs_value_keyset__ does not exist
[AndroidKeysetManager]  at com.google.crypto.tink.integration.android.SharedPrefKeysetReader.readPref(SharedPrefKeysetReader.java:71)
[AndroidKeysetManager]  at com.google.crypto.tink.integration.android.SharedPrefKeysetReader.readEncrypted(SharedPrefKeysetReader.java:89)
[AndroidKeysetManager]  at com.google.crypto.tink.KeysetHandle.read(KeysetHandle.java:116)
[AndroidKeysetManager]  at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.read(AndroidKeysetManager.java:311)
[AndroidKeysetManager]  at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.readOrGenerateNewKeyset(AndroidKeysetManager.java:287)
[AndroidKeysetManager]  at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.build(AndroidKeysetManager.java:238)
[AndroidKeysetManager]  at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:160)
[AndroidKeysetManager]  at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:120)
[EngineFactory] Provider GmsCore_OpenSSL not available
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-07 03:31:05

实际上,我已经创建了一个示例来测试毛伊岛的Secure Storage。我在按钮的点击事件中调用了await SecureStorage.SetAsync(key, value);,并在模拟器Android11、Android12和物理设备XiaoMi 6XAndroid9上运行它。

它们都工作正常,密钥和值都已写入设备中。所以可能有两个原因。

simulators.

  • Some

  • 特殊设备:该问题出现在特殊设备上,您可以尝试在其他设备或引用的版本上运行项目:我在VisualStudio17.4预览2.1上创建了该项目,您可以升级visual并创建一个新项目来测试它。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73969784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档