Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#.net Web Api窗口和匿名身份验证获取当前用户_C#_.net_Authentication_Iis_Asp.net Web Api - Fatal编程技术网

c#.net Web Api窗口和匿名身份验证获取当前用户

c#.net Web Api窗口和匿名身份验证获取当前用户,c#,.net,authentication,iis,asp.net-web-api,C#,.net,Authentication,Iis,Asp.net Web Api,我正在尝试获取本地用户,但没有返回 WebApi IIS(10)Windows 10 我的IIS已启用: 窗户 基本的 匿名的 Visual Studio 2017 C#net 4.6.1 我已尝试标记web配置: <authorization> <allow users="?" /> </authorization> AND <identity impersonate="false" /> <authentication m

我正在尝试获取本地用户,但没有返回

  • WebApi
  • IIS(10)Windows 10
我的IIS已启用:

  • 窗户
  • 基本的
  • 匿名的
Visual Studio 2017 C#net 4.6.1

我已尝试标记web配置:

  <authorization>
  <allow users="?" />
</authorization>
AND
<identity impersonate="false" />
<authentication mode="Windows" />

您不能在应用程序中混合身份验证模式而不陷入混乱。你必须选择一个并坚持下去

AllowAnonymous
属性允许您无需身份验证即可访问特定控制器。它们是否经过身份验证取决于您的身份验证方法。它通常用于访问登录页面,但也可用于不需要限制访问的站点区域


可能最简单的方法是禁用IIS中除“Windows”之外的所有内容,如前所述,如果您希望允许用户请求匿名和其他Windows身份验证,最好的方法是为每个
AuthenticationScheme
提供两个不同的子路径,例如为匿名请求定义一个路由,如
/anonymous/{controller}/{action}
,为windows身份验证请求定义一个路由
/windows/{controller}/{action}
。因此,您不必双重实现控制器,但缺点是必须为同一模块运行两个连接。

禁用匿名访问。
 [HttpGet]
    [Authorize]//I already tried [AllowAnonymous]
    public User Get()
    {
        System.Net.NetworkCredential SystemCredential = (System.Net.NetworkCredential)ADUtil.SystemCredential();
        string login = HttpContextUtil.Request.LogonUserIdentity.Name;
error here, login return 'NT AUTHORITY\IUSR'.
}