【发布时间】:2011-05-17 20:52:00
【问题描述】:
我有一个松散地基于 MVVM 的 Winforms 项目。安全性由域层使用 PrincipalPermissionAttribute 实现,如下所示:
Public Class Order
<PrincipalPermissionAttribute(SecurityAction.Demand, Role:="Managers")> _
Public Sub ChangeBillingAddress(NewAddress as Address)
Me.BillingAddress = NewAddress
End Sub
End Class
我希望我的 ViewModel 能够根据域中的 PrincipalPermissionAttribute 指示视图启用/禁用哪些控件:
Public Class OrderViewModel
Private _Order as Order
Public Sub New(Order as Order)
_Order = Order
End Sub
Public Readonly Property ChangeBillingAddressEnabled as Boolean
Get
'Here I want to take Thread.CurrentPrincipal and evaluate
'it's Role against the PrincipalPermissionAttribute on
'_Order.ChangeBillingAddress. If the user will succeed
'in changing the billing address return True, else return False.
End Get
End Property
End Class
有没有办法让 ViewModel 评估 PrincipalPermissionAttribute 并确定当前的 Thread.Principal 是否会成功?
【问题讨论】:
标签: .net vb.net mvvm attributes