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
- 窗户
- 基本的
- 匿名的
<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'.
}