WCF服务登录失败未知用户名或密码错误

时间:2009-06-21 00:37:01

标签: wcf service login

我是WCF服务的新手

我有WCF服务,我用它来对共享驱动器进行文件操作。 当我尝试写/读到共享位置时,它会抛出一个Exception说  “登录失败未知用户名或密码错误”

我可以在运行良好的代码中进行文件操作,问题是我已将所有代码移动到WCF服务,现在我得到了上述异常。

任何帮助将不胜感激

感谢 维诺德

2 个答案:

答案 0 :(得分:2)

如果您说WCF服务,则表示承载WCF服务的Windows服务。如果名称和密码写得正确,我会检查Windows服务的身份。

如果WCF服务托管在IIS中,则它可以是应用程序池的标识,也可以是充当IIS匿名帐户的帐户。

在上述两种情况下,也可能是如何调用WCF服务,如果您使用的是Windows身份验证,请确保正确设置了身份。

根据您的评论,它似乎是尝试访问文件的登录用户的凭据。同时文件位于不同的磁盘上。我最好的猜测是您使用的是无法访问文件位置的用户帐户。

答案 1 :(得分:0)

Vinod,用于访问文件系统的帐户是System.Security.Principal.WindowsIdentity.GetCurrent(),请检查此项。 如果您看到ASPNET,那么您就不会被模仿。

 <identity impersonate="true"/>

无效,因为默认情况下WCF服务不使用ASP.NET管道(因此您无权访问HttpContext)。如果它不是您想要的,请按照here所述打开aspnet兼容性。

  

ASP.NET模拟:默认情况下,WCF   请求始终作为IIS运行   进程标识,即使ASP.NET是   设置为使用启用模拟   System.Web的配置   选项。

解决方案:

<system.serviceModel>        
    <serviceHostingEnvironment aspNetCompatibilityEnabled=”true” />    
</system.serviceModel>

还有另一种模仿用户的方式(更好,因为它不依赖于ASP.NET所以如果您决定使用Windows服务而不是ASP.NET,但我还没有测试过,那就不足为奇了),看一看here

相关问题