我在两台不同的计算机上安装了客户端和服务器控制台应用程序。当我尝试连接时,出现错误“服务器已拒绝客户端凭据”。 我在服务器端的代码是:
NetTcpBinding bindingForUser = new NetTcpBinding();
bindingForUser.Security.Mode = SecurityMode.Transport;
bindingForUser.Security.Transport.ProtectionLevel = System.Net.Security.ProtectionLevel.EncryptAndSign;
bindingForUser.Security.Transport.ClientCredentialType = TcpClientCredentialType.Windows;
bindingForUser.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
string addressForUser = "net.tcp://localhost:10001/AuthenticationService";
ServiceHost host = new ServiceHost(typeof(AuthenticationService));
host.AddServiceEndpoint(typeof(IAuthenticationService), bindingForUser, addressForUser);
host.Description.Behaviors.Remove(typeof(ServiceDebugBehavior));
host.Description.Behaviors.Add(new ServiceDebugBehavior() { IncludeExceptionDetailInFaults = true }); host.open
在客户端上,我有:
NetTcpBinding binding = new NetTcpBinding();
binding.Security.Mode = SecurityMode.Transport;
binding.Security.Transport.ProtectionLevel = System.Net.Security.ProtectionLevel.EncryptAndSign;
binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Windows;
string address = "net.tcp://localhost:10001/AuthenticationService";
string username, password;
bool loggedIn = false;
Console.WriteLine("************************* Welcome to user terminal *************************");
using (AccountUserProxy proxy = new AccountUserProxy(binding, address))
{
while (!loggedIn)
{
Console.WriteLine("Please enter your username >> ");
username = Console.ReadLine();
Console.WriteLine("Please enter your password >> ");
password = Console.ReadLine();
loggedIn = proxy.Login(username,password);
}
Console.WriteLine("Press any key to log out >> ");
Console.ReadLine();
proxy.LogOut();
}
IAuthenticationService factory;
public AccountUserProxy(NetTcpBinding binding, string address) : base(binding, address)
{
factory = this.CreateChannel();
}
有人可以看到问题吗?