2010-03-23 32 views
0

我正在考慮編寫一個自定義的IPermission實現,但我不清楚它應該如何工作。我已經實施了IPrincipalIIdentity。我想完成的是能夠根據當前的IPrincipal的授權而不是其角色來檢查權限。通常,對於給定類型,授權是讀取/添加刪除/更新/無。所以我想寫這樣的東西:實施IPermission

[CustomPermission(SecurityAction.Demand, Type = typeof(Foo), MinimumAuthorization = AuthorizationFlags.Read)] 
public void SomeMethod(){} 

這可能嗎?我查看了http://msdn.microsoft.com/en-us/library/system.security.ipermission.aspx的代碼。這說明了如何實現這個接口,但是我不明白上面的僞代碼如何能夠根據這個類型的IPrincipal的授權進行檢查。

回答

1

您的​​的執行IPermission.Demand應該能夠查看Thread.Current.CurrentPrincipal,將其轉換爲您的自定義委託人並從那裏調查您的授權數據。

+0

啊是的。 Demand方法沒有在任何msdn示例中實現,所以我甚至都沒有意識到它。謝謝! – joniba 2010-03-23 10:50:56