没有提供c# store应用程序的web服务用户名

本文关键字:web 服务 用户 应用程序 store | 更新日期: 2023-09-27 18:09:13

当我尝试访问web服务时,我得到以下错误消息:

未提供用户名。在ClientCredentials中指定用户名。

生成新的凭证,如下面的代码所示:

public AppWebService_PortClient openConn2()
{
    BasicHttpBinding binding = new BasicHttpBinding();
    binding.Security.Mode = BasicHttpSecurityMode.TransportWithMessageCredential;
    BasicHttpSecurityMode sMode = binding.Security.Mode;
    EndpointAddress adress = new EndpointAddress("myURL");
    AppWebService_PortClient client = 
        new AppWebService_PortClient(binding, adress);
    client.ClientCredentials.Windows.ClientCredential = 
        new System.Net.NetworkCredential("Username", "Password", "Domain");
    string userName = 
        client.ClientCredentials.Windows.ClientCredential.UserName;
    //client.ClientCredentials.Windows.AllowedImpersonationLevel 
        //= TokenImpersonationLevel.Delegation;
    return client;
}

如果我像在string userName中那样读出凭据,我将得到正确的用户名。为什么会出现这个错误?

没有提供c# store应用程序的web服务用户名

看起来有点像这个问题:设置ClientCredentials:获取" Username is not provisied ";误差

有以下的"解决方案"。这可能适用于你的情况:

您是否在配置文件中正确配置了安全模式clientCredentialtype ?这里有一篇博文非常符合你的问题。我希望这对你有帮助!

http://amadotech.blogspot.com/2009/11/error-username-is-not-provided-specify.html

实际上我的应用程序有三个原因:

安全模式不合适。客户端凭证类型不合适。呼叫未传递所需的用户名和密码。

你应该使用

client.ClientCredentials.UserName.UserName = "Username";
client.ClientCredentials.UserName.Password = "Password";