亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C# Attribute應用:類簽名

2019-11-17 02:12:46
字體:
來源:轉載
供稿:網友

C# Attribute應用:類簽名

在應用別人接口的時候,總是要用簽名,很是不理解簽名這是怎么知道做的。通過對Attribute的學習了解。大體可以用Attribute來做簽名應用。

具體過程如下:

首先我們要先定義一個類,該類繼承Attribute。該類主要最用是,簽名需要用到的方法、參數和獲取加密文件

 1  public class CashiSongAttribute : Attribute 2     { 3         /// <summary> 4         /// 簽名參數 5         /// </summary> 6         public string[] Param { get; set; } 7         /// <summary> 8         /// 是否簽名 9         /// </summary>10         public bool IsSign { get; set; }11         /// <summary>12         /// 加密文件13         /// </summary>14         /// <param name="bp"></param>15         /// <param name="mi"></param>16         /// <returns></returns>17         public string ParamEncryption(BasePage bp,System.Reflection.MethodInfo mi)18         {19             if (Param != null && Param.Length > 0)20             {21                 string md5 = "op" + mi.Name.ToLower();22                 foreach (string item in Param)23                 {24                     if (item.ToLower() == "op" || item.ToLower() == "sign")25                         continue;26                     md5 += item + bp.GetRequest(item);27                 }28                 byte[] bytestr = Encoding.Default.GetBytes(md5);29                 MD5 _md5 = new MD5CryptoServicePRovider();30                 byte[] bytesend = _md5.ComputeHash(bytestr);31                 return BitConverter.ToString(bytesend).Replace("-", "");32             }33             return "";34         }35     }
View Code

新建一個頁面,在該頁面創建一個方法,并加入該特性

1         [CashiSong(IsSign = true, Param = new string[] { "op", "name" })]2         public string getceshicon()3         {4             return "簽名成功!";5         }

下面關鍵就再也通過調用方式的時候,驗證參數是否都符合,加密文件是否正確。

創建一個基類BasePage,該基類主要負責,接受參數,并指定參數指定的方法,并判斷簽名信息是否正確。

這里會用到:System.Reflection.MethodInfo的應用、獲取特性Attribute參數內容。

  public class BasePage : Page    {        public BasePage()        {            this.Load += new EventHandler(BasePage_Load);        }        void BasePage_Load(object sender, EventArgs e)        {            Response.AddHeader("Accept-Charset","UTF-8");            string op = GetRequest("op");            if (!string.IsNullOrEmpty(op))            {                System.Reflection.MethodInfo mi = this.GetType().GetMethod(op);                Attribute_Jude(mi);            }            this.Response.End();        }        /// <summary>        /// 簽名判斷        /// </summary>        /// <param name="mi"></param>        public void Attribute_Jude(MethodInfo mi)        {            MsgModel Msg = new MsgModel();            if (mi.IsDefined(typeof(CashiSongAttribute), false))            {                object[] attrs = mi.GetCustomAttributes(typeof(CashiSongAttribute), false);                CashiSongAttribute iplimit = (CashiSongAttribute)attrs[0];                object responsestr=null;                if (iplimit != null && iplimit.Param.Length > 0)                {                    string server_sign = GetRequest("sign");                    string client_sign = iplimit.ParamEncryption(this, mi);                    if (!server_sign.Equals(client_sign, StringComparison.OrdinalIgnoreCase)&&iplimit.IsSign)                    {                        Msg.msg = "Sing Error";                        Msg.toile = 0;                        Send(Msg);                        return;                    }                    responsestr = mi.Invoke(this, null);                }                Msg.toile = 1;                Msg.msg = responsestr.ToString();                Send(Msg);            }        }        public void Send(MsgModel Msg)        {            Response.AddHeader("Content-type","applictaion/json");            javaScriptSerializer Javascript = new JavaScriptSerializer();            string Con = javaScript.Serialize(Msg);            Response.Write(Con);        }        public string GetRequest(string key)        {            if (Request.QueryString[key] == null)                return "";            else                return Request.QueryString[key];        }    }    public class MsgModel    {        public string msg { get; set; }        public int toile { get; set; }    }

獲取特性參數內容的方法(CashiSongAttribute 為自定義特性類)

 if (mi.IsDefined(typeof(CashiSongAttribute), false))            {                object[] attrs = mi.GetCustomAttributes(typeof(CashiSongAttribute), false);                CashiSongAttribute iplimit = (CashiSongAttribute)attrs[0];            }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人有码在线播放| 91精品视频免费| 久久天天躁狠狠躁夜夜爽蜜月| 中文字幕日韩电影| 欧美国产激情18| 亚洲男人天堂网| 91免费福利视频| 欧美日韩免费区域视频在线观看| 国产精品日本精品| 欧美视频裸体精品| 性夜试看影院91社区| 久99九色视频在线观看| 国产91精品高潮白浆喷水| 国产精品久久久久国产a级| 中文欧美日本在线资源| 庆余年2免费日韩剧观看大牛| 日本欧美爱爱爱| 欧美成人免费视频| 亚洲色图25p| 国产91在线播放| 久久久噜久噜久久综合| 亚洲激情在线视频| 国产美女精彩久久| 成人免费午夜电影| 精品偷拍各种wc美女嘘嘘| 欧美巨乳美女视频| 午夜精品99久久免费| 国模私拍视频一区| 亚洲精品aⅴ中文字幕乱码| 91在线高清视频| 欧美日韩日本国产| 精品视频在线观看日韩| 亚洲乱亚洲乱妇无码| 激情av一区二区| 日韩在线观看免费高清完整版| 欧美人与性动交a欧美精品| 日韩久久精品成人| 日韩美女视频中文字幕| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲国产精品久久久久| 777国产偷窥盗摄精品视频| 97视频在线观看成人| 91性高湖久久久久久久久_久久99| 国产精品久久国产精品99gif| 成人高清视频观看www| 日韩国产精品亚洲а∨天堂免| 97在线视频观看| 久久九九精品99国产精品| 欧美精品免费在线观看| 亚洲国产精品电影在线观看| 亚洲第一中文字幕在线观看| 亚洲一区中文字幕在线观看| 亚洲欧美制服综合另类| 国产日韩欧美中文| 久久久精品日本| 日韩美女免费观看| 国产精品自产拍在线观看中文| 亚洲美女视频网| 91亚洲午夜在线| 国产香蕉一区二区三区在线视频| 精品国产乱码久久久久酒店| 欧美影院在线播放| 欧美xxxx18国产| 91成人精品网站| 精品少妇v888av| 亚洲精品久久久一区二区三区| 欧美精品www在线观看| 国产成人精品综合| 97视频人免费观看| 亚洲最大的av网站| 中文字幕欧美精品在线| 中文字幕一区电影| 视频在线一区二区| 欧美丝袜一区二区三区| 精品亚洲一区二区| 亚洲精选在线观看| 亚洲精品一区二三区不卡| 国产精品视频永久免费播放| 国产欧美日韩中文字幕在线| 欧美午夜精品久久久久久久| 久久国产精品久久久久久久久久| 国产99视频精品免视看7| 日本欧美爱爱爱| 国产精品久久久久久av下载红粉| 在线日韩中文字幕| 欧美激情图片区| 日韩电影中文字幕av| 操人视频在线观看欧美| 国产成人jvid在线播放| 在线观看亚洲区| 亚洲国产一区二区三区在线观看| 久久国产加勒比精品无码| 国产视频999| 国产主播欧美精品| 国产在线a不卡| 亚洲电影免费观看高清完整版在线观看| 久久久www成人免费精品| 日韩av在线网站| 懂色aⅴ精品一区二区三区蜜月| 国产欧美一区二区| 国产午夜精品全部视频在线播放| 亚洲一区二区三区在线免费观看| 日韩亚洲欧美中文高清在线| 日本一区二区三区四区视频| 91在线视频一区| 伦伦影院午夜日韩欧美限制| 国内免费精品永久在线视频| 国产69精品久久久久99| 久久精品久久久久电影| 亚洲成人黄色在线| 国产日产亚洲精品| 欧美激情第一页xxx| 人人澡人人澡人人看欧美| 国产精品电影一区| 久久精彩免费视频| 国产欧美日韩专区发布| 亚洲国产成人精品电影| 国产丝袜一区视频在线观看| 国产精品福利网站| 性欧美长视频免费观看不卡| 欧美日韩在线影院| 91精品久久久久久久久| 亚洲级视频在线观看免费1级| 久久夜精品va视频免费观看| 国产精品高清免费在线观看| 欧美多人爱爱视频网站| 成人福利网站在线观看11| 久久精品中文字幕| 久久久999精品视频| 亚洲天堂免费视频| 懂色av影视一区二区三区| 国产精品久久久久久久久久新婚| 亚洲精品一区二区网址| 国产精品日韩久久久久| 日韩av一区二区在线观看| 亚洲精品自拍偷拍| 国产噜噜噜噜久久久久久久久| 日日骚av一区| 亚洲成人网久久久| 久久亚洲成人精品| 国产精品久久久久秋霞鲁丝| 欧美日韩亚洲成人| 日韩美女福利视频| 亚洲色图欧美制服丝袜另类第一页| 日产日韩在线亚洲欧美| 亚洲专区国产精品| 日韩成人高清在线| 成人网在线观看| 91精品中国老女人| 国产91|九色| 91国产视频在线| 国产精品wwww| 日本高清视频精品| 亚洲综合小说区| 一本色道久久88综合亚洲精品ⅰ| 粉嫩av一区二区三区免费野| 欧美一级免费视频| 国产精品日韩久久久久| www.亚洲一二| 国产午夜精品麻豆| 久久综合亚洲社区| 国产日韩专区在线| 久久精彩免费视频| 中文字幕成人在线|