首页 文章

为什么WindowsIdentity类在.NET Core中不可见

提问于
浏览
6

在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();
        }
    }
}

为什么我收到错误:

The name 'WindowsIdentity' does not exist in the current context

如果我能在.Net Core docs中的.NET Core 2.0库中看到这个类?

相同的代码适用于.NET控制台应用 .

[EDIT]

@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在_1286950中,但我没有引用 System.Security.Principal.Windows.dll ,我应该添加它吗?如果是的话从哪里来?

.NET Core api reference我在列表中看到这个类(如果它与核心不兼容,该列表的目的是什么?

我也在that link找到有关该课程的信息

我在错误的地方看?

1 回答

相关问题