我有一個自定義控制以下代碼的頁面控制:如何隱藏控制和阻止加載數據
<SiteControls:Announcements runat="server" id="UserAnnouncements" />
讓我們也說我有一個GridView控件,就這樣我可以覆蓋多個場景。我需要檢查用戶是否有權限通過檢查布爾查看此控制:
PermissionsManagement.DoesUserHavePermission(userId, permissionId)
其定義爲:
public static class PermissionsManagement
{
public static bool DoesUserHavePermission(int userAccountId, int permissionId)
{
// Code Goes Here
}
}
如果用戶沒有權限,DoesUserHavePermission將返回false 。我有ASP.NET WebForms頁面,就好像用戶具有完全控制一樣(這意味着我擁有頁面上的所有控件,並且如果他們沒有權限而不是將每個控件添加到頁面,就想將其刪除)。
如果用戶沒有權限但我不能阻止加載控件,或者在GridView加載數據的情況下,我可以將控件的可見性設置爲Page_Load函數的false。如果用戶沒有使用(查看)控件的權限,如何停止控件(用戶控件或標準控件)加載任何數據?我曾嘗試以下內嵌代碼不起作用:
<% if(PermissionsManagement.DoesUserHavePermission(1, 1))
{ %>
<SiteControls:Announcements runat="server" id="UserAnnouncements" />
<% } %>
但是,這並不工作,作爲控制的Page_Load仍是起火的控制,我以爲,如果它是數據綁定任何其他控件將加載數據或行爲類似於我的控制。