繁体   English   中英

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

[英]c# .net Web Api Windows and Anonymous Authentication get current user

我试图获得本地用户,但我没有回报。

  • 网络接口
  • IIS (10) 视窗 10

我的 IIS 已启用:

  • 视窗
  • 基本的
  • 匿名的

Visual Studio 2017 C# .net 4.6.1

我已经尝试标记网络配置:

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

代码 WebApi

 [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'.
}

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

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

可能最简单的方法是在 IIS 中禁用除“Windows”之外的所有内容

正如这里提到的如果你想允许用户通过 Windows 身份验证请求匿名和其他人,你最好的方法是为每个AuthenticationScheme呈现两个不同的子路径,例如为匿名请求定义一个路由,如/anonymous/{controller}/{action} ,一个用于Windows认证请求/windows/{controller}/{action} 因此,您不必双重实现控制器,但缺点是您必须为同一个模块运行两个连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM