转义C#WebMethod的URL中的特殊字符

时间:2018-03-05 14:33:12

标签: c# web-services error-handling special-characters

我有一个C#WebService,其中有几种方法具有不同数量的参数。在每个Web方法中,我已经能够建立错误逻辑来检查期望值,但是,在URL中使用特殊字符发送到服务器的URL的情况下,我无法正确处理异常。

public class ClientGroupMgmt : System.Web.Services.WebService
{
    public string readConn = ConfigurationManager.ConnectionStrings["ClientDB"].ConnectionString;

    //List of Special characters
    public string[] BadChars = { ">", "<", "&", "@", "#" };

    [WebMethod]
    public List<ClientGroupInfo> getAllClientGroupInfo()
    [WebMethod]
    public List<ClientGroupInfo> getClientGroupsbyClientID(string clientid)
    [WebMethod]
    public List<ClientGroupInfo> addClientGroup(string clientid, string clientGroupName, string prodIssueID, string intMailDistro)
if(BadChars.Any(s=>clientid.Contains(s)))
            {
                //Error
                Error = "Special characters are not allowed.";
                throw new Exception(Error);
            }

我认为我应该捕获父WebService类中的URL值并对其进行编码/解码以去除特殊字符,但是我没有找到任何帮助的示例。当我在Visual Studio中调试它并使用WSDL窗口提供参数时,代码正常运行并提供对特殊字符的正确响应,但是,当它部署到服务器时,#的特殊字符被忽略并被视为URL字符的预期结束。我的另一个想法是可能监测参数的数量和误差,而不是预期的数量,但是,这在我的任何研究中都没有显示出来。

提前感谢您提供的任何帮助。 问候, 比尔

0 个答案:

没有答案