我想了解更多關於C#中HostProtectionAttribute的內容。當然,我讀了MSDN文檔this和this,但我無法弄清楚爲什麼我們使用它。在文檔中有像「主機編程模型」這樣的術語,這使得這個話題更令我困惑。什麼是HostProtectionAttribute,我們爲什麼使用它?
假設我們有一個具有此屬性的方法,如果刪除它,會發生什麼情況?
我想了解更多關於C#中HostProtectionAttribute的內容。當然,我讀了MSDN文檔this和this,但我無法弄清楚爲什麼我們使用它。在文檔中有像「主機編程模型」這樣的術語,這使得這個話題更令我困惑。什麼是HostProtectionAttribute,我們爲什麼使用它?
假設我們有一個具有此屬性的方法,如果刪除它,會發生什麼情況?
正如下面的文檔所闡明的那樣;
鑑於這些屬性,SQL服務器指定的HPA的列表是 通過代碼訪問安全 (CAS)不允許在託管環境。 CAS要求是由三個SQL Server 權限集之一指定:SAFE,EXTERNAL_ACCESS或UNSAFE。在使用CREATE ASSEMBLY語句在 服務器上註冊程序集時指定了這三個 安全級別之一。所述 SAFE或EXTERNAL_ACCESS權限內執行的代碼設置必須避免某些類型或 構件具有施加的 System.Security.Permissions.HostProtectionAttribute屬性。
的HostProtectionAttribute是不是一個安全許可儘可能多,在於**它標識特定代碼 構建,無論類型或方法,該主機可能不允許
I couldn't figure out why we use it.
我們用它來幫助我們在主機環境中編寫可預測的代碼,因爲
它確定了具體的代碼結構,無論是類型或方法,主機可能不允許
Suppose that we have a method that has this attribute and what happens if I delete it?
當你刪除它,如果該方法包含類型或某些代碼構造,也許不允許主機訪問,您永遠不會知道,因此可能會導致您的代碼在主機環境(如SQL Server)中發生不可預知的行爲。我希望這會使它更有幫助。