如何将 Windows.Security.Credentials.UI 命名空间包含到 C# 项目中

Posted

技术标签:

【中文标题】如何将 Windows.Security.Credentials.UI 命名空间包含到 C# 项目中【英文标题】:How to include Windows.Security.Credentials.UI namespace into C# project 【发布时间】:2021-05-17 17:03:30 【问题描述】:

我的目标是使用 Windows.Security.Credentials.UI 命名空间来创建一个程序,该程序通过用户的 Windows pin 对用户进行身份验证,类似于 Opera Password Manager

唯一的问题是我无法弄清楚如何将命名空间包含到我的程序中。

我已尝试将其包含在内:

using Windows.Security.Credentials.UI;

但是,这返回了一个错误:

The type or namespace name 'Windows' could not be found (are you missing a using directive or an assembly reference?)

我也尝试将命名空间作为引用包含在内,但我无法在“引用”菜单中找到它。

C# .NET 4.7.2 控制台应用程序中安装Windows.Security.Credentials.UI 命名空间的正确方法是什么?

【问题讨论】:

【参考方案1】:

使用 .NET Framework 时,您必须包含 Microsoft.Windows.SDK.Contracts nuget package,然后您才能访问(某些)WinRT API。

这是一个示例 C# 控制台应用程序:

class Program

    static async Task Main()
    
        await Windows.Security.Credentials.UI.UserConsentVerifier.RequestVerificationAsync("hello world").AsTask();
    

之所以有效,是因为此 API 被标记为 DualApiPartition。

还要确保您对 nuget 包使用 PackagesReference 格式,不是packages.config configuration。

【讨论】:

我试过这个并且得到了类似的错误:The type or namespace name 'Security' does not exist in the namespace 'Windows' 你是否包含了 nuget 包? 是的,就是打包后的错误。 我对此表示怀疑。请在某处发布您的复制项目。 这是一个控制台应用程序,你认为这是问题所在吗?

以上是关于如何将 Windows.Security.Credentials.UI 命名空间包含到 C# 项目中的主要内容,如果未能解决你的问题,请参考以下文章

如何将Ios文件上传到

Qt如何将文字变成图片?

如何将Bitmap保存为本地图片文件?

在MATLAB中如何将图导出

ASP如何将SQLSERVER数据导出到DBF(VF)

如何将CSV格式转换成JSON格式