如何将 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# 项目中的主要内容,如果未能解决你的问题,请参考以下文章