The wsHttp binding of WCF service uses windows authentication, so using the service outside the domain is not a straight forward method.
Well, I had the WCF services created and deployed on my app server when I tried accessing it from other domain, it started throwing security exception, that's when I came to know the actual problem. The client credentials were not set when accessing it from the outside.
The easy way I found and implemented by keeping a service account which is a domain user. I have kept that user details in my configuration which is encrypted on client side and used as below
AdminService.AdminServiceClient objSvc = new AdminService.AdminServiceClient();
objSvc.Endpoint.Address = new System.ServiceModel.EndpointAddress(endpointaddress);
objSvc.ClientCredentials.Windows.ClientCredential.UserName = username;
objSvc.ClientCredentials.Windows.ClientCredential.Password = password;
objSvc.ClientCredentials.Windows.ClientCredential.Domain = domain;
While creating the wcf service client, assign username, password and domain which belongs to domain. After updating the clientccredentials, the client started working fine.
Sunday, October 11, 2009
Accessing wsHttp WCF service from outside domain
Labels:
WCF,
WCF client authentication,
WCF impersonation,
wshttp wcf
Subscribe to:
Post Comments (Atom)
Thank's working fine!
ReplyDelete