【问题标题】:How to include Windows.Security.Credentials.UI namespace into C# project如何将 Windows.Security.Credentials.UI 命名空间包含到 C# 项目中
【发布时间】: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 命名空间的正确方法是什么?

【问题讨论】:

    标签: c# .net windows windows-runtime


    【解决方案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 包?
    • 是的,就是打包后的错误。
    • 我对此表示怀疑。请在某处发布您的复制项目。
    • 这是一个控制台应用程序,你认为这是问题所在吗?
    猜你喜欢
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 2018-01-16
    相关资源
    最近更新 更多