实现带有用户身份验证的文件传输Web Service(3)
来源:网络整理 责任编辑:栏目编辑 发表时间:2013-07-01 17:52 点击:次
下面我们生成一个web service,起名叫FileServer,在FileServer.asmx中有如下代码:
大家可以看到Codebehind技术是如何被使用的。在Visual Studio.Net中,自动生成的代码大量使用这样的语句。它使得设计页面和编写代码被划分开了。
在FileServer.asmx.cs中,代码如下:
运行它。将会得到如图1所示页面:
大家应该注意到名为GetFile的服务是我给的代码中的Web Method,下面的“need authentication!”是由WebMethod定义中的Description="need authentication!"给出的。
<%@ 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!"给出的。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>