繁体   English   中英

在REST Web Api上获取Windows登录用户

[英]Get windows logged user on REST Web Api

我已经启动并运行了REST API。 现在我正在尝试做日志服务。

我们的想法是在客户端应用程序上登录用户所做的所有操作的数据库表。

由于它是用于内部使用(仅在Intranet上使用),我使用Windows身份验证( <authentication mode="Windows" /> )。

日志服务已经解决了一个问题。 我无法得到登录用户。

如果我在本地计算机上运行API和客户端应用程序,我可以获得我的用户。 但是当我发表时我不能。

我已经尝试过的:

string userName = WindowsIdentity.GetCurrent().Name;

string userName = HttpContext.Current.User.Identity.Name;

string userName = HttpContext.Current.Request.LogonUserIdentity.Name;

string userName = Environment.UserName;

我得到各种各样的userNames( IUSRIIS APPPOOL\\MyApiMyApi ,也是空白)但不是Windows登录用户。

我在IIS上启用Windows身份验证

任何人都可以告诉我这是否可能? 如果是的话,该怎么做?

通过REST API假定您的意思是ASP.Net Web API。

如果是这样,User.Identity.Name将返回当前已验证用户的用户名。

如果您尚未将[Authorize]属性添加到控制器(或特定操作),那么我会这样做以禁止匿名访问,这可能会显示您的配置未正确设置。 如果是这种情况(正如我假设的那样),那么您执行的这些测试都是匿名连接的用户。

在IIS中,在身份验证/ Windows身份验证下,有一个“提供程序...”操作。 单击它并将NTLM移动到Negotiate上。 我过去必须这样做才能获得当前用户的身份而不是应用程序池的身份。

暂无
暂无

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

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