ASP.NET常用的几个方法

  /// <summary>
  /// 下载文件
  /// </summary>
  /// <param name="vPath">路径</param>
  public static void DownloadData(string vPath)
  {
    string path = System.Web.HttpContext.Current.Server.MapPath(vPath);

   if (File.Exists(path))
   {
    FileInfo DownloadFile = new FileInfo(path);
    System.Web.HttpContext.Current.Response.Clear();
    System.Web.HttpContext.Current.Response.ClearHeaders();
    System.Web.HttpContext.Current.Response.Buffer=false;
    System.Web.HttpContext.Current.Response.ContentType="application/octet-stream";
    System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=" +HttpUtility.UrlEncode(DownloadFile.FullName,System.Text.Encoding.UTF8));
    System.Web.HttpContext.Current.Response.AppendHeader("Content-Length",DownloadFile.Length.ToString());
    System.Web.HttpContext.Current.Response.WriteFile(DownloadFile.FullName);
    System.Web.HttpContext.Current.Response.Flush();
    System.Web.HttpContext.Current.Response.End();   
   }
  }

------------------------------------------------------------------------------------------------------------------------------------------

判断是否刷新页面.防止刷新再次提交数据的终极绝招

  protected bool _refreshState;
  protected bool _isRefresh;

  public bool IsRefresh
  {
   get
   {
    return _isRefresh;
   }
  }

  protected override void LoadViewState(object savedState)
  {
   object[] allStates = (object[]) savedState;
   base.LoadViewState(allStates[0]);
   _refreshState = (bool) allStates[1];
   _isRefresh = _refreshState == (bool) Session["__ISREFRESH"];
  }

  protected override object SaveViewState()
  {
   Session["__ISREFRESH"] = _refreshState;
   object[] allStates = new object[2];
   allStates[0] = base.SaveViewState();
   allStates[1] = !_refreshState;
   return allStates;
  }

用法: 如果是刷新页面,则IsRefresh为True
if (!IsRefresh)
{
    //数据操作语句
}

-------------------------------------------------------------------------------------------------------------------------------------------------
可逆加密
  /// <summary>
  /// 加密数据(可逆)
  /// </summary>
  /// <param name="strText">原始数据</param>
  /// <param name="strEncrKey">密码字典</param>
  /// <returns></returns>
  public static String Encrypt(String strText, String strEncrKey)
  {
   Byte[] byKey = {};
   Byte[] IV  = {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};
   try
   {
    byKey = System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0, 8));
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    Byte[] inputByteArray  = Encoding.UTF8.GetBytes(strText);
    MemoryStream ms = new MemoryStream();
    CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);
    cs.Write(inputByteArray, 0, inputByteArray.Length);
    cs.FlushFinalBlock();
    return Convert.ToBase64String(ms.ToArray());
   }
   catch(Exception ex)
   {
    return ex.Message;
   }
  }

  /// <summary>
  /// 解密数据(可逆)
  /// </summary>
  /// <param name="strText">密文数据</param>
  /// <param name="strEncrKey">密码字典</param>
  /// <returns></returns>
  public static String Decrypt(String strText, String sDecrKey)
  {
   Byte[] byKey  = {};
   Byte[] IV = {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};
   Byte[] inputByteArray = new byte[strText.Length];
   try
   {
    byKey = System.Text.Encoding.UTF8.GetBytes(sDecrKey.Substring(0, 8));
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    inputByteArray = Convert.FromBase64String(strText);
    MemoryStream  ms = new MemoryStream();
    CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);
    cs.Write(inputByteArray, 0, inputByteArray.Length);
    cs.FlushFinalBlock();
    System.Text.Encoding encoding = System.Text.Encoding.UTF8;
    return encoding.GetString(ms.ToArray());
   }
   catch(Exception ex)
   {
    return ex.Message;
   }
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值