我在我的.NET類中有一個方法,它必須實現基於Caller-ID的安全性。我很好奇,是否有某種方式可以告訴我的方法來自哪裏?我們能找出方法調用來自哪個程序集?
回答
我發現GetCallingAssembly方法。
不容易。使用診斷程序庫可能會有,但它不會很漂亮,簡單或可擴展。
您可以限制與方法訪問:
private
:只有類成員可以訪問它protected
:只有派生類的類成員和成員都可以訪問它internal
:只有會員在同一個程序集中的類可以訪問它
如果你不能相信你自己的代碼,你會遇到更大的問題。
圖片比這個大得多。我有MEF擴展DLL必須信任來自某些DLL的調用。我不能讓其他插件傳遞給我一個額外的安全性參數。 – fahadash 2014-09-19 00:03:53
@fahadash你基本上還是通過默默無聞的方式來實現安全。我可以使用與DLL相同的名稱輕鬆創建程序集,然後我可以訪問您的祕密方法。我並不是說這很容易,但是如果我已經擁有了MEF界面,那麼我不需要做太多的步驟。 – BradleyDotNET 2014-09-19 00:07:09
@fahadash基本上,如果你不能相信*所有* DLL來做這個操作,你應該問自己爲什麼信任任何* DLL。私人/受保護/內部模式的設置方式是有原因的。 – BradleyDotNET 2014-09-19 00:08:39
- 1. 防止來自不需要的程序集的方法調用
- 2. 來自不同程序集的方法調用
- 3. Python:找出`symmetric_difference`的結果來自哪個集合的最好方法是?
- 4. 如何找出哪個應用程序需要來自GAC的特定程序集?
- 5. 找出在另一個類中調用哪個類的方法
- 6. 找出NSLogs來自哪裏?
- 7. 當我們持有UITableViewCell時會調用哪個方法
- 8. 找出推文來自哪個短語
- 9. 我需要爲C#擴展方法包含哪個程序集?
- 10. 有沒有辦法找出程序集從一個相關程序集中使用哪個.net符號?
- 11. 來自線程的Java方法調用
- 12. 如何找到哪個服務調用我的應用程序?
- 13. 找出對WCF程序的請求來自哪裏?
- 14. 在我的應用程序中調用「password =」方法在哪裏?
- 15. 當我們調用哪個線程調用第一
- 16. 我應該選擇哪個代碼來調用委託方法?
- 17. 我們可以用主要方法調試Java程序嗎?
- 18. 找出哪個git提交一個目錄來自哪裏?
- 19. 來自其他應用程序的調用方法
- 20. 加載程序集調用方法返回自定義類型
- 21. 來自哪裏的方法?
- 22. 我們可以在哪裏調用stopSelf()或stopService()方法來停止服務?
- 23. 從哪裏來的用戶來自我的Facebook應用程序
- 24. 爲什麼我的程序不能調用我的方法?
- 25. 如何找出我的web服務(.net asmx)的調用來自哪裏?
- 26. 我怎樣才能標記哪個行來自哪個表?
- 27. 有沒有辦法通過反射知道一個方法來自調用者的程序集?
- 28. 從我的DJango應用程序中我的500來自哪裏?
- 29. 我如何知道我的應用程序來自哪裏?
- 30. UrlReferrer - 需要找出它來自哪裏
這是回答您的問題還是這是一條評論? – TyCobb 2014-09-18 23:50:18
@TyCobb是的,它確實爲 – fahadash 2014-09-19 00:04:12
+1,即使我不建議依靠它來保證安全。 – BradleyDotNET 2014-09-19 00:13:40