dav*_*823 2 .net c# authentication asmx
我创建了简单的.NET Web服务(ASMX),我从.NET Web应用程序调用它.该服务和Web应用程序都使用Windows身份验证.
com.mydomain.MyWebService webSrvc = new com.mydomain.MyWebService();
string output = webSrvc.MyServiceMethod();
Run Code Online (Sandbox Code Playgroud)
我现在用C#创建Windows应用程序,并希望从那里调用相同的Web服务.我在项目中添加了一个Web引用到服务中,我可以毫无问题地调用服务Web方法.问题是,在Web方法中,我试图检索用户的Windows用户名.
string username = User.Identity.Name; //always blank
Run Code Online (Sandbox Code Playgroud)
这在我从我的网络应用程序调用Web服务时有效,但是当我从我的Windows应用程序调用它时,它总是返回空白,并且User.Identity.IsAuthenticated始终为false,如果这是相关的.我在这里想念的是什么 我只需要获取运行控制台应用程序的Windows用户用户名,即调用Web服务.我已尝试将webSrvc的凭据设置为ClientCache默认凭据,但这并不能解决问题.
更新:我不知道这是否有用,但我了解到如果我使用Environment.UserName,它将提供"NETWORK_SERVICE",然后如果我启用模拟,它将给出"IUSR_ [host_name]".看起来我只是缺少一些非常简单的东西.我只是想获得当前运行windows应用程序(调用Web服务)的Windows用户.
小智 6
组
UseDefaultCredentials = true;
Run Code Online (Sandbox Code Playgroud)
这将验证当前用户(或当前进程正在运行的帐户)
| 归档时间: |
|
| 查看次数: |
10743 次 |
| 最近记录: |