лучший способ получить доступ к базе данных с помощью SOAP - PullRequest
2 голосов
/ 05 мая 2011

В настоящее время я работаю над пониманием протокола SOAP с C #, я нахожу несколько примеров в Google и понимаю конверт, заголовок, тело.

Я проверяю подлинность с помощью веб-службы, но я хочу знать, где я могу реализовать класс или метод для доступа к базе данных с предоставленными пользователем и паролем. Я имею в виду, что заголовок soap имеет user = "john" pass = "odos223kiwi0X" сервер получил заголовок, теперь доступ к базе данных предоставлен пользователем и проверен пароль.

если правильный вариант создать пользовательский метод в классе мыла, чтобы сделать это?

1 Ответ

2 голосов
/ 05 мая 2011

вы можете создать класс следующим образом:

using System.Diagnostics;
using System.Xml.Serialization;
using System;
using System.Web.Services.Protocols;
using System.Web.Services;
using System.Net;

[System.Web.Services.WebServiceBindingAttribute(
Name = "FunctionName",
Namespace = "nameSpace")]
public class ClassName:
System.Web.Services.Protocols.SoapHttpClientProtocol
{
    public ClassName(string uri) // Constractor
    {
        this.Url = uri; // the full path for your server we  will make later on in the answer
    }

    [System.Web.Services.Protocols.SoapDocumentMethodAttribute(
    "nameSpace/ClassName",
    RequestNamespace = "nameSpace",
    ResponseNamespace = "nameSpace",
    Use = System.Web.Services.Description.SoapBindingUse.Literal,
    ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]

    public object[] FunctionName(string Parameter1)
    {
        object[] results = { };

        try
        {
            results = this.Invoke("FunctionName", new object[] { Parameter1});
            return ((object[])(results[0]));
        }
        catch (Exception error)
        {
            object[] webException = { -1, error.Message };
            return (webException);
        }
    }
}

и теперь мы создаем службу asmx:

создаем веб-сервис и добавляем его в пространство имен:

[WebService(Namespace = "NameSpace")] //same namespace you wrote in the class

затем добавьте свою функцию и Object [] в качестве возвращаемого значения.

[WebMethod]
public object[] FunctionName(string Parameter1) // function name and parameters should be the same in your class where you called the web service (case sensitive)
{
   ... // your code
}

** вы можете скачать http://www.fiddler2.com/fiddler2/version.asp, что позволит вам видеть и отслеживать исходящие запросы

пожалуйста, пришлите мне ответ, если вам нужна дополнительная информация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...