在VisualStudio 2017 .NET Core 2.0控制台应用程序中具有以下代码
using System;
using System.Security.Principal;
namespace smallTests
{
class Program
{
static void Main(string[] args)
{
var identity = WindowsIdentity.GetCurrent();
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我收到错误:
The name 'WindowsIdentity' does not exist in the current context
Run Code Online (Sandbox Code Playgroud)
如果我可以在.Net Core docs中的.NET Core 2.0库中看到这个类?
相同的代码适用于.NET控制台应用.
[编辑]
@Will @JohnnyL评论说我没有提及System.Security.Principal.Windows.dll,这是真的.
但我很好奇为什么它不起作用,因为在.NET 4.6.1项目中(类WindowsIdentity可见)我也没有System.Security.Principal.Windows.dll具体提到这一点.但是我引用了System.dll.
我一直认为它像命名空间层次结构一样工作.例如,当我提到
System.Security.Principal.dll
我可以使用里面的课程
System.Security.Principal.Windows.dll.
我错了吗?
我System.Security.Principal.dll手动添加到.NetCore解决方案但它仍然无效.
[EDIT2]
@Will非常感谢你们很多关于它帮助我的主题.我试图弄明白是WindowsIdentity与Core兼容,看来请注意:
在声明区域的这个apisof.net中,我可以看到WindowsIdentity在,.Net Core 2.0 System.Security.Principal.Windows, Version=4.1.1.0, PublicKeyToken=b03f5f7f11d50a3a
但我没有System.Security.Principal.Windows.dll引用,我应该添加吗?如果是的话从哪里来?
在.NET Core api参考中我在列表中看到这个类(如果它与核心不兼容,那个列表的目的是什么?
我还在该链接中找到有关该类的信息
我在错误的地方看?
Lex*_* Li 13
微软几周前发布了针对.NET Core的Windows兼容包,
通过分析System.Security.Principal.Windows.csproj添加它的源代码和提交,
我的结论是,这也是Windows唯一兼容库的一部分,因此只能在Windows上使用.
要将其添加到项目中,请打开csproj并手动添加PackageReference标记System.Security.Principal.Windows(或使用Visual Studio的NuGet包管理器).
| 归档时间: |
|
| 查看次数: |
6344 次 |
| 最近记录: |