没有提供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
中那样读出凭据,我将得到正确的用户名。为什么会出现这个错误?
看起来有点像这个问题:设置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";
。