0

Web サービスを使用して必要な情報を取得する WinForm アプリケーションを作成しました。住所はこれです:

こことmsdnでいくつかの記事を読み、プロジェクトにサービス参照を追加しましたが、メソッドを使用したいときはできません。

今、私は混乱しています。ユーザー名とパスワードをサービスに送信する必要があり、ID の送信を認証した後、Web サービスが適切な情報を返信してから、受信したログを返信する必要があります。WinForm で可能ですか? どうすればいいですか?

いくつかのサンプル コードまたはリファレンスが適用されます。

4

1 に答える 1

0

新しい Web サービス アプリケーション プロジェクト (名前は SoapHeaderAuth として設定) を追加し、以下に示すようにコードを追加します。

 using System;
 using System.Web;
 using System.Web.Services;
 using System.Web.Services.Protocols;
 using System.Configuration;
 [WebService(Namespace ="www.XMLWebServiceSoapHeaderAuth.net")
 ][WebServiceBinding(ConformsTo =WsiProfiles.BasicProfile1_1)]
 public class Service:System.Web.Services.WebService
  {
     public AuthSoapHd spAuthenticationHeader;

     public Service()
       {
       }

    public class AuthSoapHd: SoapHeader
    {
      public string strUserName;
      public string strPassword;
    }

      [WebMethod,SoapHeader("spAuthenticationHeader")]
    public string HelloWorld()
    {
     if (spAuthenticationHeader.strUserName =="TestUser" &&
       spAuthenticationHeader.strPassword =="TestPassword")
     {
       return "User Name : " +spAuthenticationHeader.strUserName + " and " +
       "Password : " +spAuthenticationHeader.strPassword;
     }
     else
     {
       return "Access Denied";
     }
  }
 }

上記の Web サービス アプリケーションに Web 参照を追加し、[Web 参照の追加] ダイアログで Web 参照名を localhost として指定します。次に、次のコードをクライアント (ウィンドウ フォームまたは Web アプリケーション) に貼り付けます。

     localhost.Service objWebService = newlocalhost.Service();
     localhost.AuthSoapHd objAuthSoapHeader = newlocalhost.AuthSoapHd();

     string strUsrName ="your usernmaen"
     string strPassword ="Your password"

     objAuthSoapHeader.strUserName = strUsrName;
     objAuthSoapHeader.strPassword = strPassword;

     objWebService.AuthSoapHdValue =objAuthSoapHeader;
    string str = objWebService.HelloWorld();
于 2013-09-03T06:44:14.433 に答える