gpt4 book ai didi

c# - Web 服务不返回当前 Windows 用户名

转载 作者:太空宇宙 更新时间:2023-11-03 20:42:05 25 4
gpt4 key购买 nike

这是我在 web 服务中用于获取当前 windows 用户的函数。

 <WebMethod()> _
Function User() As String
Dim p() As String = Split(My.User.Name, "\")
Dim p1 As String = p(1)
Return p1
End Function

当我在本地主机上运行服务时,它确实返回当前的 Windows 用户名!问题是当我从远程 PC 运行服务时,在这种情况下我从该功能中一无所获。此服务有什么问题,我如何获取 Windows 用户的名称?

谢谢!

最佳答案

您希望它返回什么:来电者的身份?或运行网络服务的服务帐户的身份?

在大多数情况下,windows 标识将取决于服务器的配置方式;它在使用模拟吗?另外,您是否在调用该服务时传递了调用者的身份?例如,UseDefaultCredentialsCredentials。服务是否配置为识别用户声明?

一般来说,我尽量使用模拟;它需要在服务器上进行提升,不支持所有环境,并且会对池的有效性产生重大影响 - 所以我不希望 windows 身份流动,但如果你通过某种形式的调用者身份我可能希望“主体”(Thread.CurrentPrincipal)代表调用者。

我不记得是从 asmx 开始的,但是如果需要,您可以使用 WCF 编写自己的代码以根据您自己的身份验证方案设置主体。

关于c# - Web 服务不返回当前 Windows 用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2140611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com