【发布时间】:2020-07-09 21:49:39
【问题描述】:
我在使用 Active Directory 的网络上。我编写了一个 MVC c# Web 应用程序,以使用标题中的网站显示此人的姓名。代码是
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.Current;
Debug.Writeline(user.DisplayName); //but when i host it in a local server (IIS) this keeps outputing my name
每当我使用别人的计算机访问该网站时,我仍然会在标题中看到我的名字。
我该如何解决这个问题,以便每当我在其他人的计算机上时,我都会在标题中看到他们的名字?
【问题讨论】:
-
我亲自到个人计算机并访问网络上的 url
-
你不能。您曾经能够做到这一点,但它只能在 Internet Explorer 中工作。 Web 服务器不一定知道有关客户端的任何信息。您会在请求中发现一些似乎的 HTTP 标头可以告诉您要查找的内容,但实际上很容易伪造这些标头。
-
另外,如果你在那里看到你的名字,那么你设置的 IIS 应用程序非常错误。您应该会看到类似
ASPNET_USER或Network Service的内容,或者可能是为此目的创建的专用服务帐户...但绝对不是您的日常用户帐户。请记住:您的所有代码都在 Web 服务器上运行,作为该过程的一部分并在该上下文中。 -
在你的控制器类中,你应该从
Controller.Userdocs.microsoft.com/cs-cz/dotnet/api/…访问登录用户信息。
标签: c# iis active-directory