频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

实现带有用户身份验证的文件传输WebService(3)

来源:qqread 作者: 出处:巧巧读书 2007-03-22 进入讨论组
     下面我们生成一个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!"给出的。文字:http://www.qqread.com/csharp/u303914.html进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章