成長空間

          MiLife

          常用鏈接

          統計

          積分與排名

          Automation Testing Development

          最新評論

          #

          http://www.cnblogs.com/tonyqus/archive/2006/11/30/577097.html

          posted @ 2007-09-25 14:40 Picasso 閱讀(171) | 評論 (0)編輯 收藏

          Tape information

          原來百科全書這種東西也總結了,收納
          http://en.wikipedia.org/wiki/Linear_Tape-Open

          posted @ 2007-09-05 17:33 Picasso 閱讀(189) | 評論 (0)編輯 收藏

          SSL的證書驗證

          SSL協議與數字證書原理 1樓

          SSL 協議的握手和通訊

            為了便于更好的認識和理解 SSL 協議,這里著重介紹 SSL 協議的握手協議。SSL 協議既用到了公鑰加密技術又用到了對稱加密技術,對稱加密技術雖然比公鑰加密技術的速度快,可是公鑰加密技術提供了更好的身份認證技術。SSL 的握手協議非常有效的讓客戶和服務器之間完成相互之間的身份認證,其主要過程如下:
            ① 客戶端的瀏覽器向服務器傳送客戶端 SSL 協議的版本號,加密算法的種類,產生的隨機數,以及其他服務器和客戶端之間通訊所需要的各種信息。
            ② 服務器向客戶端傳送 SSL 協議的版本號,加密算法的種類,隨機數以及其他相關信息,同時服務器還將向客戶端傳送自己的證書。
            ③ 客戶利用服務器傳過來的信息驗證服務器的合法性,服務器的合法性包括:證書是否過期,發行服務器證書的 CA 是否可靠,發行者證書的公鑰能否正確解開服務器證書的“發行者的數字簽名”,服務器證書上的域名是否和服務器的實際域名相匹配。如果合法性驗證沒有通過,通訊將斷開;如果合法性驗證通過,將繼續進行第四步。
            ④ 用戶端隨機產生一個用于后面通訊的“對稱密碼”,然后用服務器的公鑰(服務器的公鑰從步驟②中的服務器的證書中獲得)對其加密,然后將加密后的“預主密碼”傳給服務器。
            ⑤ 如果服務器要求客戶的身份認證(在握手過程中為可選),用戶可以建立一個隨機數然后對其進行數據簽名,將這個含有簽名的隨機數和客戶自己的證書以及加密過的“預主密碼”一起傳給服務器。
            ⑥ 如果服務器要求客戶的身份認證,服務器必須檢驗客戶證書和簽名隨機數的合法性,具體的合法性驗證過程包括:客戶的證書使用日期是否有效,為客戶提供證書的 CA 是否可靠,發行 CA 的公鑰能否正確解開客戶證書的發行 CA 的數字簽名,檢查客戶的證書是否在證書廢止列表(CRL)中。檢驗如果沒有通過,通訊立刻中斷;如果驗證通過,服務器將用自己的私鑰解開加密的“預主密碼”,然后執行一系列步驟來產生主通訊密碼(客戶端也將通過同樣的方法產生相同的主通訊密碼)。
            ⑦ 服務器和客戶端用相同的主密碼即“通話密碼”,一個對稱密鑰用于 SSL 協議的安全數據通訊的加解密通訊。同時在 SSL 通訊過程中還要完成數據通訊的完整性,防止數據通訊中的任何變化。
            ⑧ 客戶端向服務器端發出信息,指明后面的數據通訊將使用的步驟⑦中的主密碼為對稱密鑰,同時通知服務器客戶端的握手過程結束。
            ⑨ 服務器向客戶端發出信息,指明后面的數據通訊將使用的步驟⑦中的主密碼為對稱密鑰,同時通知客戶端服務器端的握手過程結束。
            ⑩ SSL 的握手部分結束,SSL 安全通道的數據通訊開始,客戶和服務器開始使用相同的對稱密鑰進行數據通訊,同時進行通訊完整性的檢驗。


            雙向認證 SSL 協議的具體過程
             ① 瀏覽器發送一個連接請求給安全服務器。
            ② 服務器將自己的證書,以及同證書相關的信息發送給客戶瀏覽器。
            ③ 客戶瀏覽器檢查服務器送過來的證書是否是由自己信賴的 CA 中心所簽發的。如果是,就繼續執行協議;如果不是,客戶瀏覽器就給客戶一個警告消息:警告客戶這個證書不是可以信賴的,詢問客戶是否需要繼續。
             ④ 接著客戶瀏覽器比較證書里的消息,例如域名和公鑰,與服務器剛剛發送的相關消息是否一致,如果是一致的,客戶瀏覽器認可這個服務器的合法身份。
             ⑤ 服務器要求客戶發送客戶自己的證書。收到后,服務器驗證客戶的證書,如果沒有通過驗證,拒絕連接;如果通過驗證,服務器獲得用戶的公鑰。
             ⑥ 客戶瀏覽器告訴服務器自己所能夠支持的通訊對稱密碼方案。
             ⑦ 服務器從客戶發送過來的密碼方案中,選擇一種加密程度最高的密碼方案,用客戶的公鑰加過密后通知瀏覽器。
             ⑧ 瀏覽器針對這個密碼方案,選擇一個通話密鑰,接著用服務器的公鑰加過密后發送給服務器。
             ⑨ 服務器接收到瀏覽器送過來的消息,用自己的私鑰解密,獲得通話密鑰。
             ⑩ 服務器、瀏覽器接下來的通訊都是用對稱密碼方案,對稱密鑰是加過密的。
             上面所述的是雙向認證 SSL 協議的具體通訊過程,這種情況要求服務器和用戶雙方都有證書。單向認證 SSL 協議不需要客戶擁有 CA 證書,具體的過程相對于上面的步驟,只需將服務器端驗證客戶證書的過程去掉,以及在協商對稱密碼方案,對稱通話密鑰時,服務器發送給客戶的是沒有加過密的(這并不影響 SSL 過程的安全性)密碼方案。 這樣,雙方具體的通訊內容,就是加過密的數據,如果有第三方攻擊,獲得的只是加密的數據,第三方要獲得有用的信息,就需要對加密的數據進行解密,這時候的安全就依賴于密碼方案的安全。而幸運的是,目前所用的密碼方案,只要通訊密鑰長度足夠的長,就足夠的安全。這也是我們強調要求使用 128 位加密通訊的原因。



          證 書 各 部 分 的 含 義
          Version 證書版本號,不同版本的證書格式不同
          Serial Number 序列號,同一身份驗證機構簽發的證書序列號唯一
          Algorithm Identifier 簽名算法,包括必要的參數 Issuer 身份驗證機構的標識信息
          Period of Validity 有效期
          Subject 證書持有人的標識信息
          Subject’s Public Key 證書持有人的公鑰
          Signature 身份驗證機構對證書的簽名


            證書的格式  認證中心所發放的證書均遵循 X.509 V3 標準,其基本格式如下:

          證書版本號(Certificate Format Version) 含義:用來指定證書格式采用的 X.509 版本號。
          證書序列號(Certificate Serial Number) 含義:用來指定證書的唯一序列號,以標識 CA 發出的所有公鑰證書。
          簽名(Signature) 算法標識(Algorithm Identifier) 含義:用來指定 CA 簽發證書所用的簽名算法。
          簽發此證書的 CA 名稱(Issuer ) 含義:用來指定簽發證書的 CA 的 X.500 唯一名稱(DN, Distinguished Name)。
          證書有效期(Validity Period) 起始日期(notBefore) 終止日期(notAfter) 含義:用來指定證書起始日期和終止日期。
          用戶名稱(Subject) 含義:用來指定證書用戶的 X.500 唯一名稱(DN,Distinguished Name)。
          用戶公鑰信息(Subject Public Key Information) 算法(algorithm) 算法標識(Algorithm Identifier) 用戶公鑰(subject Public Key) 含義:用來標識公鑰使用的算法,并包含公鑰本身。
          證書擴充部分(擴展域)(Extensions) 含義:用來指定額外信息。 
          X.509 V3 證書的擴充部分(擴展域)及實現方法如下: CA 的公鑰標識(Authority Key Identifier) 公鑰標識(SET 未使用)(Key Identifier) 簽發證書者證書的簽發者的甄別名(Certificate Issuer) 簽發證書者證書的序列號(Certificate Serial Number)

           X.509 V3 證書的擴充部分(擴展域)及實現CA 的公鑰標識(Authority Key Identifier) 公鑰標識(SET 未使用)(Key Identifier) 簽發證書者證書的簽發者的甄別名(Certificat簽發證書者證書的序列號(Certificate Serial N含義:CA 簽名證書所用的密鑰對的唯一標識用戶的公鑰標識(Subject Key Identifier) 含義:用來標識與證書中公鑰相關的特定密鑰進行解密。 證書中的公鑰用途(Key Usage) 含義:用來指定公鑰用途。
          用戶的私鑰有效期(Private Key Usage Period) 起始日期(Note Before) 終止日期(Note After) 含義:用來指定用戶簽名私鑰的起始日期和終止日期。 CA 承認的證書政策列表(Certificate Policies) 含義:用來指定用戶證書所適用的政策,證書政策可由對象標識符表示。 用戶的代用名(Substitutional Name) 含義:用來指定用戶的代用名。 CA 的代用名(Issuer Alt Name) 含義:用來指定 CA 的代用名。 基本制約(Basic Constraints) 含義:用來表明證書用戶是最終用戶還是 CA。 在 SET 系統中有一些私有擴充部分(擴展域)Hashed Root Key 含義:只在根證書中使用,用于證書更新時進行回溯。 證書類型(Certificate Type) 含義:用來區別不同的實體。該項是必選的。 商戶數據(Merchant Data) 含義:包含支付網關需要的所有商戶信息。 持卡人證書需求(Card Cert Required) 含義:顯示支付網關是否支持與沒有證書的持卡人進行交易。 SET 擴展(SETExtensions) 含義:列出支付網關支持的支付命令的 SET 信息擴展。 CRL 數據定義版本(Version) 含義:顯示 CRL 的版本號。
          CRL 的簽發者(Issuer) 含義:指明簽發 CRL 的 CA 的甄別名。 CRL 發布時間(this Update) 預計下一個 CRL 更新時間(Next Update) 撤銷證書信息目錄(Revoked Certificates) CRL 擴展(CRL Extension) CA 的公鑰標識(Authority Key Identifier) CRL 號(CRL Number)

          posted @ 2007-09-04 18:05 Picasso 閱讀(3716) | 評論 (0)編輯 收藏

          BQ中的DST 處理

          最近BQ關于時間處理出問題, 是因為時間的計算上沒有處理好DST,以前做計費的時候老碰到,還做了專題,疏忽了,微軟倒有詳細的解釋,抄錄如下:
          http://support.microsoft.com/kb/932955/zh-cn

          posted @ 2007-09-04 14:50 Picasso 閱讀(208) | 評論 (0)編輯 收藏

          有志之人立志常,無志之人常立志

          偶爾聽到的

          posted @ 2007-08-30 20:27 Picasso 閱讀(161) | 評論 (0)編輯 收藏

          WPF automation

          產品的GUI Automation準備:
          1.書籍:
          http://www.cnblogs.com/tonyqus/archive/2007/08/01/835071.html

          這本書是由Adam Nathan和Daniel Lehenbauer寫的,這兩個人都是WPF Team的,而且都是核心開發工程師,技術級別自然是很高的。全書共有600頁左右,原版書采用全彩印刷,于2007年初由SAMS出版社出版發行。作為一本Unleashed級別的書,自然要適合初、中、高各個層次的開發者。

          本書共分為6個部分,其實嚴格意義上講是5部分,因為第6部分是附錄。讓我們看看這五部分分別講了什么:
          第一部分 背景

          這部分主要講WPF的由來、為什么要使用WPF,以及一些WPF的基礎知識。總的來說,這一部分是為接下來的幾個部分作鋪墊的,可以算是打基礎。對于初學者來說,看完這一部分你就可以基本了解WPF是什么、為什么要學習WPF以及WPF的發展方向,說白了就是讓你找到學習的方向。我個人對于這種寫作風格十分喜歡,一開始就告訴你這個技術的用途,而且用了大篇幅來講一些實際的例子,讓讀者可以有一個感性的認識。

          第二部分 構建一個WPF應用程序

          顧名思義,這部分講的是構建一個WPF應用程序所需要的知識。但這一部分要比上一部分中的基礎知識深入多了,講的都是很實用的東西,直接可以在開發中使用,比如控件、變換等,當然這一部分主要還是著重于打基礎,但與你所想象的不同,它并不是一步一步教你構建一個類似于Hello World的程序,而是把涉及的一些概念講得比較深入,作者似乎是想讓讀者在充分理解的基礎上創建第一個WPF應用程序。

          第三部分為專業開發人員設計的功能

          這部分算是第二部分的提高篇,講到了資源、數據綁定、樣式、模板等,這些可都是做高端開發所必須的,但由于是一些相對較難理解的東西,所以作者把它放在這部分里一切講解。

          第四部分 富媒體使你的程序領先于時代

          這部分圍繞著富媒體展開,這也是WPF真正牛的地方,比如說2D和3D功能、動畫、視頻、音頻等,WPF的最大優點就在于它把使用這些富媒體的門檻降低了,所以如果你想真正開發出科幻般的應用程序的話,這一部分自然是必須看的。

          第五部分 高級主題

          這部分相對于前幾部分有相當的難度,所以才叫高級主題!我個人覺得這一章完全是為高級開發人員準備的,其中涉及的內容都是關于定制控件開發、互操作性之類的,要看這一章你必須對前面的部分有充分的理解。

          這本書的寫作風格也很有特點,其中有大量的提示、警告和深入挖掘。所謂提示,就是一些技巧性的東西,根據正文講的東西展開;所謂警告,則是告訴我們哪些東西可以用,哪些不可以用,這一技術有什么技巧;所謂深入挖掘,就是對正文所提到的東西深入講解一番,可以有效幫助我們加深對一些知識點的理解。

          大家可以去http://adamnathan.net/wpf/ 下載這本書的代碼,不過貌似沒有找到勘誤信息,可能作者對這本書的質量比較有自信吧。

          這幾年軟件開發的重點在Web,但Charles Petzold依然固守在Client端的GUI程序設計,我原本以為,他會漸漸沒落,事實上,《Programming Microsoft Windows with C#》的銷售也不能算很好。但是隨著WPF技術的出現,Charles Petzold的這本《Applications = Code + Markup》將會讓他再度成為重要的書籍作者。

          這是一本「學習用書」而非「參考用書」。盡管如此,本書的讀者必須熟悉C#語言并具備.NET Framework的經驗,沒有經驗的讀者,可以閱讀Charles Petzold寫的在線免費書籍《.NET Book Zero: What the C or C++ Programmer Needs to Know about C# and the .NET Framework》。

          Applications = Code + Markup》介紹如何使用WPF編寫微軟Windows平臺的程序。WPF的程序可以是一般的獨立Windows應用(這樣的程序現在常稱為 Client應用),或者是分布式(Distributed)應用的前端(也就是RIARich Internet Application),未來也可能利用WPF/E取代一部分的Web技術,例如:ASP.NETWPF被認為是Windows Vista的主要API,但是也可以用在已安裝.NET 3.0Windows XP/SP2Windows Server 2003

          WPF
          其實包含「兩個」互相關連的程序設計接口。你可以利用C#(或其它.NET語言)編寫WPF程序。WPF也具備一個讓人興奮的XML語言, 稱為XAML,甚至可以只用XAML開發某些應用。但是一般來說,你會同時利用程序代碼(Code)和標記(Makeup)一同開發出你的應用。現在,你應 該能夠體會,為什么這本書的書名為《Application = Code + Markup》。在WPF的觀念中,我們使用XAMLMarkup)定義使用者接口視覺的部分(包括圖形和動畫),然后寫程序代碼(Code)處理使用者 的輸入。

          WPF
          支持兩種非常不同的程序設計接口,每個程序設計員都應該要對于WPFCode部分建立穩固的根基,寫起Markup的時候才不會遇到障 礙。因此,本書分成兩個部分,各約半本書。第一部分先引導讀者如何利用C#寫出整個WPF程序(完全不用到XAML),第二部分再介紹XAML
          二部分將焦點轉移到XAML。展示如何只用XAML建立小型的應用,以及如何結合XAMLC#以建立更大型、更復雜的應用。因為XAML 是用來建立應用的視覺部分,所以本書大部分和圖形相關的內容,會放在第二部分。XAML的檔案大多數是用工具所產生出來的。然而,我們還是有必要具備「親自動手編寫XAML」的能力,本書試圖要教我們這么做。

          再過幾年Windows Forms也會被淘汰,而WPF才是未來的主流。雖然WPF尚未像Windows Forms提供這么多控件和標準對話框,但是未來卻很有發展潛力。特別是,如果你需要做很多客制化控件和繪圖,WPF會是你需要的。如果你想好好地學 習WPFCharles Petzold寫的這本《Applications = Code + Markup》,不會讓你失望的。
          2. WPF->net Framework里的UIAutomation 需要了解.
          http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1634518&SiteID=1
          http://msdn.microsoft.com/msdnmag/issues/07/03/Bugslayer/
          http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=769221&SiteID=1







          posted @ 2007-08-08 15:48 Picasso 閱讀(675) | 評論 (0)編輯 收藏

          批處理控制VMWare虛擬機


          http://myblog.iweb.net.cn/read.php?66
          VMWare 確實是好東西,不過安裝之后會增加四個自動啟動的服務以及兩個虛擬的網絡連接。我是比較討厭這種沒事就占著系統資源的東西,何況也不是經常要用著 VMWare ,所以寫了個批處理腳本來自動啟動/關閉 VMWare 虛擬機以及相關的服務和網絡連接。
          完整批處理文件內容如下:


          1 @echo On  
          2 @PROMPT [VMWareController]#  
          3  
          4 @if "%1" == "" goto Help  
          5 @if "%1" == "help" goto Help  
          6 @if "%1" == "/?" goto Help  
          7  
          8 @SET oprType=%1  
          9 @SET netOpr=%oprType%  
          10  
          11 @if "%oprType%" == "start" @SET netOpr=enable  
          12 @if "%oprType%" == "stop" @SET netOpr=disable  
          13  
          14 @SET vmxFile=%2  
          15 @Rem 如果沒有提供第二個參數vmx full path,將嘗試使用這里設定的缺省虛擬機  
          16 @Rem 根據需要把這個文件修改為實際希望啟動的vmx文件  
          17 @if "%vmxFile%" == "" @SET vmxFile=D:\VMWare\Red Hat Enterprise Linux 3.vmx  
          18  
          19 @Rem VMWare的安裝目錄,根據需要進行修改  
          20 @SET vmwareFolder=E:\AppTool\VMWare  
          21  
          22 @Rem 把VMWare相關的四個服務設置為手動  
          23 sc config VMAuthdService start= demand  
          24 sc config VMnetDHCP start= demand  
          25 sc config "VMware NAT Service" start= demand  
          26 sc config vmount2 start= demand  
          27  
          28 @Rem 啟動/停止VMWare相關的四個服務  
          29 net %oprType% "VMware Authorization Service"  
          30 net %oprType% "VMware DHCP Service"  
          31 net %oprType% "VMware NAT Service"  
          32 net %oprType% "VMware Virtual Mount Manager Extended"  
          33  
          34 @Rem 這里使用通配符來停用/啟用所有vmnet相關的網絡連接  
          35 devcon %netOpr% *vmnet*  
          36  
          37 @Rem 使用vmrun來運行指定的虛擬機  
          38 "%vmwareFolder%\vmrun" %oprType% "%vmxFile%"    
          39  
          40 @goto EndMission  
          41  
          42 :Help  
          43 @echo 自動啟動/停止指定的 VMWare 虛擬機以及相關的服務和網絡連接  
          44 @echo 需要 devcon 工具來控制網絡連接。工具下載地址:  
          45 @echo http://support.microsoft.com/kb/311272/zh-cn  
          46 @echo 命令行參數:  
          47 @echo %0 [start^|stop] ^  
          48 @echo ^為缺省啟動的虛擬機配置文件  
          49 @pause  
          50 goto EndMission  
          51  
          52 :EndMission  
          view plain | print | copy to clipboard | ?
          @echo On
          @PROMPT [VMWareController]#

          @if "%1" == "" goto Help
          @if "%1" == "help" goto Help
          @if "%1" == "/?" goto Help

          @SET oprType=%1
          @SET netOpr=%oprType%

          @if "%oprType%" == "start" @SET netOpr=enable
          @if "%oprType%" == "stop" @SET netOpr=disable

          @SET vmxFile=%2
          @Rem 如果沒有提供第二個參數vmx full path,將嘗試使用這里設定的缺省虛擬機
          @Rem 根據需要把這個文件修改為實際希望啟動的vmx文件
          @if "%vmxFile%" == "" @SET vmxFile=D:\VMWare\Red Hat Enterprise Linux 3.vmx

          @Rem VMWare的安裝目錄,根據需要進行修改
          @SET vmwareFolder=E:\AppTool\VMWare

          @Rem 把VMWare相關的四個服務設置為手動
          sc config VMAuthdService start= demand
          sc config VMnetDHCP start= demand
          sc config "VMware NAT Service" start= demand
          sc config vmount2 start= demand

          @Rem 啟動/停止VMWare相關的四個服務
          net %oprType% "VMware Authorization Service"
          net %oprType% "VMware DHCP Service"
          net %oprType% "VMware NAT Service"
          net %oprType% "VMware Virtual Mount Manager Extended"

          @Rem 這里使用通配符來停用/啟用所有vmnet相關的網絡連接
          devcon %netOpr% *vmnet*

          @Rem 使用vmrun來運行指定的虛擬機
          "%vmwareFolder%\vmrun" %oprType% "%vmxFile%"

          @goto EndMission

          :Help
          @echo 自動啟動/停止指定的 VMWare 虛擬機以及相關的服務和網絡連接
          @echo 需要 devcon 工具來控制網絡連接。工具下載地址:
          @echo http://support.microsoft.com/kb/311272/zh-cn
          @echo 命令行參數:
          @echo %0 [start^|stop] ^
          @echo ^為缺省啟動的虛擬機配置文件
          @pause
          goto EndMission

          :EndMission


            把以上代碼保存為 .bat 文件,并創建兩個指向該 .bat 文件的快捷方式,并分別給兩個快捷方式加上 start / stop 參數(也可以再提供第二個參數來指定啟動特定的虛擬機配置文件),就可以通過快捷方式直接啟動/停止 VMWare 相關的虛擬機和服務。

            其中使用了 devcon 工具來控制網絡連接的停用/啟用,需要到微軟網站下載該工具。

            注意:如果你的系統中存在其他硬件ID包含 *vmnet* 字符串的話會把所有相關的設備同時都禁用/啟用。你可以在命令行下輸入 devcon find *vmnet* 先檢查一下是否只匹配到 VMWare 所添加的兩個虛擬網絡連接。

            用 vmrun 關閉虛擬機的時候作用等同于在操作界面的 Power Off 按鈕。所以最好在執行批處理之前使用虛擬操作系統的 shutdown 命令先安全退出操作系統。

          posted @ 2007-08-01 06:59 Picasso 閱讀(1416) | 評論 (0)編輯 收藏

          SOAP協議初級指南

          http://www.yesky.com/229/1739729_8.shtml
          http://www0.ccidnet.com/tech/app/2001/09/21/58_3322.html
          http://www0.ccidnet.com/tech/app/2001/09/21/58_3321.html
          http://www0.ccidnet.com/tech/app/2001/09/21/58_3320.html
          http://www0.ccidnet.com/tech/app/2001/09/21/58_3319.html

          posted @ 2007-07-26 11:47 Picasso 閱讀(204) | 評論 (0)編輯 收藏

          XML NameSpace

          http://zhangjunhd.blog.51cto.com/113473/18934

          posted @ 2007-07-26 11:14 Picasso 閱讀(208) | 評論 (0)編輯 收藏

          Single Sign on 2

          Java based:
          http://www.ibm.com/developerworks/cn/websphere/library/techarticles/xiaojing/SSOprepare/SSOprepare.html


          MS based:
          http://www.microsoft.com/china/community/MsSpecialist/1.mspx

          posted @ 2007-07-25 18:50 Picasso 閱讀(174) | 評論 (0)編輯 收藏

          僅列出標題
          共4頁: 上一頁 1 2 3 4 下一頁 
          主站蜘蛛池模板: 伊春市| 哈密市| 恭城| 孝昌县| 泰宁县| 泰顺县| 浮山县| 郸城县| 阜新| 新化县| 陇南市| 长春市| 镇远县| 桓仁| 顺平县| 延庆县| 乐安县| 镇平县| 城口县| 沙雅县| 渝中区| 宾川县| 白玉县| 尤溪县| 襄城县| 唐山市| 扶余县| 特克斯县| 鹤庆县| 周宁县| 镇坪县| 无锡市| 绵阳市| 福安市| 大竹县| 山阴县| 宜兴市| 大英县| 中西区| 墨玉县| 乐都县|