實現帶有使用者身分識別驗證的檔案傳輸Web Service(3) (轉)

來源:互聯網
上載者:User
web 作者: 曹勇剛   www.ASPCool.com 時間:2001-11-28 22:51:59  閱讀次數:493


     下面我們產生一個web service,起名叫FileServer,在FileServer.asmx中有如下代碼:
     
    <%@ WebService Language="c#" Codebehind="FileServer.asmx.cs" Class="useResData.FileServer" %>
     
      大家可以看到Codebehind技術是如何被使用的。在Visual Studio.Net中,自動產生的程式碼大量使用這樣的語句。它使得設計頁面和編寫代碼被劃分開了。
     
      在FileServer.asmx.cs中,代碼如下:
     
    using System;
     
    using System.Collections;
     
    using System.ComponentModel;
     
    using System.Data;
     
    using System.Diagnostics;
     
    using System.Web;
     
    using System.Web.Services;
     
    using System.IO;
     
    namespace useResData
     
    {
     
     ///
     
     /// Summary description for FileServer.
     
     ///
     
     public class FileServer : System.Web.Services.WebService
     
     {private string rootdir;
     
      public FileServer()
     
      {
     
      //CODEGEN: This call is required by the ASP.NET Web Services Designer
     
      InitializeComponent();
     
      rootdir=Server.MapPath("/caomo/提供傳輸的檔案");
     
      }
     
     
     
      #region Component Designer generated code
     
      ///
     
      /// Required method for Designer support - do not modify
     
      /// the contents of this method with the code editor.
     
      ///
     
      private void InitializeComponent()
     
      {
     
      }
     
      #endregion
     
      ///
     
      /// Clean up any resources being used.
     
      ///
     
     protected override void Dispose( bool disposing )
     
     {
     
     }
     
     public Authentication header; //定義使用者身分識別驗證類變數header。
     
      [WebMethod(Description="need authentication!")]
     
      [System.Web.Services.Protocols.SoapHeader("header")]
       //使用者身分識別驗證的soap頭
     
     public string GetFile(string filePath)
     
     {
     
      if (header.ValidUser(header.Username,header.Password)) //使用者身分識別驗證
     
      {
     
       FileStream myfile=File.OpenRead(rootdir+filePath);
     
       BinaryReader br=new BinaryReader(myfile);
     
       byte[] btBuf=new byte[myfile.Length];
     
       long i=0;
     
       while (br.PeekChar()>-1)
     
       {
     
        btBuf[i]=br.ReadByte();
     
        i++;
     
       }
     
       myfile.Close();
     
       return System.Convert.ToBase64String(btBuf);
     
      }
     
      else return null;//使用者身分識別驗證failed
     
     }
     
      運行它。將會得到如圖1所示頁面:
     
     
    圖 1
     
      大家應該注意到名為GetFile的服務是我給的代碼中的Web Method,下面的“need authentication!”是由WebMethod定義中的Description="need authentication!"給出的。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。