Unauthorized or AccessDenied exception when using SOAP Native Xml Web Services
One of the common problems people face when using SQL 2005 web services for the first time is the requirement of specifying credentials in the SOAP request. Unlike .Net Framework web services, where the server may not require credentials, SQL 2005 has a strict rule that credentials must be specified.
If your client application was developed using C# and you see the following exception:
System.Net.WebException
The request failed with HTTP status 401: Unauthorized.
This means that the client application is not sending any credentials or the credentials are wrong (ie. old password).
To correct the problem, specify the correct credentials to be used. The simplest way is to specify
proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
in the C# code, where "proxy" is the variable of the web service class.
Additional information regarding how to specify the exact type of authentication scheme to use (ie. Digest, Kerberos, or NTLM) in a C# application is available in Books Online under topic "Specifying Non-Kerberos Authentication in Visual Studio Projects". This topic is reachable through the index by looking for "Native XML Web Services"->"writing client applications".
If your client application was developed using C# and you see the following exception:
System.Web.Services.Protocols.SoapException
There was an error in the incoming SOAP request packet: Client, LoginFailure, AccessDenied
This means that the user credential you specified does not have permission to connect to the endpoint or to execute the specific web method.
To correct the problem, grant the necessary permissions to the objects related to the request (ie. Connect permissions to the endpoint; execute permissions on the stored procedure; select permissions on the table; execute permissions CLR UDT; etc.)
Jimmy Wu, SQL Server Protocols
Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights
Comments
Anonymous
August 03, 2006
Thank you. This helped a bunchAnonymous
September 04, 2006
Hi
Iam getting System.Web.Services.Protocols.SoapException
There was an error in the incoming SOAP request packet: Client, LoginFailure, AccessDenied for ASP.net application while calling a SQL server 2005 on the local machine
.But the same code went thro when i used froms based c# client .
If possible pls do explain on this.
Thanks and Regards
Sezhian.gkAnonymous
September 05, 2006
The comment has been removedAnonymous
September 09, 2006
The comment has been removedAnonymous
January 16, 2007
The comment has been removedAnonymous
January 17, 2007
The comment has been removedAnonymous
January 04, 2008
PingBack from http://famousquotes.247blogging.info/?p=409Anonymous
April 10, 2008
The comment has been removedAnonymous
October 23, 2008
I am using this and it works for me. The point here is that we need to include "System.Net.ICredentials credentials = new System.Net.NetworkCredential("userIdxxx", "Passwordxxx", "domainxxx")"; com.abcCompany.Project1.account_endpoint objProxy = new com.clickable.eds.business_endpoint(); System.Net.ICredentials credentials = new System.Net.NetworkCredential("userIdxxx", "Passwordxxx", "domainxxx"); objProxy.Credentials = credentials; Object objData = objProxy.GetBalanceSheet();Anonymous
May 12, 2009
The comment has been removed