首页 > 解决方案 > 如何将 Windows.Security.Credentials.UI 命名空间包含到 C# 项目中

问题描述

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

Opera_password_manager_image

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

我试过这样包括它:

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?)

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

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

标签: c#.netwindowswindows-runtime

解决方案


使用 .NET Framework 时,您必须包含Microsoft.Windows.SDK.Contracts nuget 包,然后您才能访问(某些)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配置


推荐阅读