.NET Core - C# - MacOS |钥匙扣 API

.NET Core - C# - MacOS | Keychain API

尝试使用 C# set/get 将一些密码输入到 MacOS 上的钥匙串中。设法添加 Xamarin.iOS 程序集,但似乎无法更进一步。这就是我的,

using System;
using Security;
using Foundation;

var query = new SecRecord(SecKind.InternetPassword)
{
    Server = "bugzilla.novell.com",
    Account = "miguel"
};

但是得到一个异常,这不是很有用。我不确定什么值为空。上面的示例直接来自 Xamarin website,但不起作用。这个钥匙串业务的新手,所以不确定我错过了什么。

有人可以帮忙吗?非常感谢任何帮助!

我也试过在没有枚举的情况下实例化,但仍然得到同样的错误。

能够通过调用 security cmd 解决此问题 - https://ss64.com/osx/security.html

但是如果有人知道如何通过 API 和使用 C# 来完成此操作,请告诉我。

在 C# 中使用 Apple 本机 API 之前,您必须按照 Using Xamarin.Mac bindings for Console Apps 中的说明正确初始化 Objective-C 运行时:

NSApplication.Init();

实际上,调用 ObjCRuntime.Runtime.EnsureInitialized(); 就足够了,但与 NSApplication.Init() 不同的是,EnsureInitialized() 方法是内部方法,因此只能通过反射调用,这可能不是一个好主意。