C 呼叫Web Service時的身份驗證

2021-05-11 12:30:59 字數 2119 閱讀 8867

在專案開發,我們經常會使用webservice,但在使用webservice時我們經常會考慮以下問題:怎麼防止別人訪問我的webservice?從**引用我的webservice?對於第乙個問題,就涉及到了webservice是安全問題,因為我們提供的webservice不是允許所有人能引用 的,可能只允許本公司或者是通過授權的人才能使用的。那怎麼防止非法使用者訪問呢?很容易想到通過一組使用者名稱與密碼來防止非法使用者的呼叫 。

在system.net中提供了乙個networkcredential,通過它我們可以在網路中提供乙個憑證,只有獲得該憑證的使用者才能訪問相應的服務的許可權。在這裡我們也使用networkcredential。在networkcredential中,我們通過提供webservice發布所在的伺服器名稱,以及登入伺服器並呼叫該webservice的使用者名稱及密碼(在iis中配置)。

在呼叫webservice時設定其credential屬性,把上面得到的credential憑證賦值給它,這樣只有使用提供的使用者名稱及密碼才能呼叫webservice服務了而其他使用者則無法訪問,這樣就能能滿足防止webservice被別人呼叫了。

至於主機名,使用者名稱及密碼,對於b/s可以通過webconfig來配置,對於c/s可以使用應用程式配置檔案。這樣就能靈活地配置了。

如下以c/s為例來說明,首先我們提供乙個伺服器網路憑證,然後通過webrequest來驗證連線是否成功。當然了,為了儲存使用者名稱與密碼等的安全,可以對其進行加密等手段來保證其安全。

以下是主要源**:

code

1        /**

2        /// 伺服器網路憑證

3        ///

4        ///

5        public static networkcredential mycred()

6       

14        /**

15        /// 驗證是否成功連線到伺服器,若連線成功,則返回true

16        ///

17        /// 伺服器webservice url

18        ///

19        public static bool credential(string url)

20       

34            }

35            catch (webexception wex)//無法連線到伺服器,可能是因為伺服器錯誤或使用者名稱與密碼錯誤

36           

43                return false;

44            }

45            catch (exception ex)

46           

53                return false;

55            }

56            finally

57           

60            return true;

61        }

63       private static ws_webasic.ws_webasic webasic =null;//實現華ws_webasic.ws_webasic

65        /**

66        /// ws_webasic初始化

67        ///

68        public static ws_webasic.ws_webasic ws_webasic

69       

82                }

83                return webasic;

84            }

85        }

注:(1)必須引用 system.net;

(2)對webservice發訪問,在iis裡取消匿名訪問許可權,若允許匿名訪問,就沒有必須提供驗證憑證了。

驗證是有時速度會比較慢,主要是因為mywebresponse = mywebrequest.getresponse();時速度比較慢。

通過以上的實現,就實現了webservice的安全訪問問題。

C 呼叫Web Service時的身份驗證

在專案開發,我們經常會使用webservice,但在使用webservice時我們經常會考慮以下問題 怎麼防止別人訪問我的webservice?從 引用我的webservice?對於第乙個問題,就涉及到了webservice是安全問題,因為我們提供的webservice不是允許所有人能引用的,可能只...

C 呼叫Web Service時的身份驗證

在專案開發,我們經常會使用webservice,但在使用webservice時我們經常會考慮以下問題 怎麼防止別人訪問我的 webservice?從 引用我的webservice?對於第乙個問題,就涉及到了webservice是安全問題,因為我們提供的 webservice不是允許所有人能引用 的,...

C 動態呼叫WebService

使用示例 trycatch exception ex 類檔案 using system using system.web using system.xml using system.collections using system.net using system.text using system...