gpt4 book ai didi

c# - 使用 SOAP 访问数据库的最佳方式

转载 作者:太空宇宙 更新时间:2023-11-03 11:37:09 25 4
gpt4 key购买 nike

我目前正在努力用 C# 理解 SOAP 协议(protocol),我在 Google 中找到了一些示例并理解了信封、 header 、正文。

我使用 web 服务进行身份验证,但我想知道我在哪里可以实现一个类或方法来使用提供的用户和密码访问数据库,我的意思是,soap header 有 user="john"pass="odos223kiwi0X"服务器收到 header ,现在使用提供的用户访问数据库并检查密码。

如果一个正确的选项在 soap 类中创建一个自定义方法来做到这一点?

最佳答案

你可以像下面这样创建一个类:

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 服务:

创建一个 Web 服务并将其添加到命名空间下:

[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这将使您能够查看和跟踪发出的请求

如果您需要更多信息,请发回给我。

关于c# - 使用 SOAP 访问数据库的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5898436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com