【发布时间】:2018-11-15 07:01:35
【问题描述】:
我有一个向服务器发送调用的 Silverlight 应用程序。服务器使用 WCF 服务来执行调用。如果执行呼叫的用户是我期望的用户,我希望能够检查“AfterReceiveRequest”功能。如果不是 - 我想中止操作。
问题是 - 我无法正确获取 IIS 用户名。 我试过这个属性:
OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name
和
OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.Name
只有当我从 Visual Studio 运行应用程序时,他们才给我正确的用户名,而不是在应用程序池上。当我在应用程序池上运行应用程序时,我在这两个参数中都得到了值:IIS APPPOOL\MyApplicationPool。
客户端和服务器在同一台机器上,所以这看起来不像是双跳。
有人可以帮忙吗?我需要它在 Windows 和基本身份验证中工作。
【问题讨论】:
-
据我所知,您需要使用 Windows 身份验证。使用 Windows 身份验证时,您需要一个 windows 用户名。您需要使用 Windows 身份验证来处理此操作。
-
首先 - 即使使用 Windows 身份验证,上述参数的值也不正确。此外 - 我看不出有任何理由不使用基本身份验证......