反射擷取定製Attribute

來源:互聯網
上載者:User
前段時間寫了擴充.net安全機制(1, 2),當時做了些實驗代碼,關於使用者權限控制的功能是沒有問題的,但關於許可權管理卻沒有做實際的代碼進行實驗。當時想當然的認為可以通過反射機制讀取到定製安全屬性的內容,這幾天開始做實際的代碼,卻發現並沒有這麼簡單。
我的目標是這樣的,開啟一個dll檔案,通過反射得到其所有類和方法,並調用GetCustomAttributes方法擷取其Attribute,然後讀取這些Attribute記錄的資料併入庫管理。可是,現在發現GetCustomAttributes方法好像不能得到從CodeAccessSecurityAttribute繼承的屬性。我嘗試了自己定義的安全Attribute和.net提供的PrincipalPermissionAttribute,都不行。用.NET Reflector看了一下反編譯後的代碼,發現這些Attribute變成了PermissionSetAttribute。可是,既然Reflector可以看到PermissionSetAttribute,那麼我自己的代碼通過反射應該至少也可以看到這個啊,看來還需要繼續研究。
不過,就目前情況,也有個不太完美的解決方案,就是除了安全Attribute,再定義一個普通的定製Attribute,記錄需要管理的資訊,這個普通的Attribute是可以通過GetCustomAttributes得到的,這個我已經實驗過。這個方案不完美的地方就是要為需要安全控制的對象加兩個Attribute,而且要保證其內容一致。確實不完美,不過可以用,也許只能採用這個方案了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.