使用動態數據時,有一種方法只允許用戶查看包含其名稱/ ID#的記錄。這意味着當他們過濾數據時,他們的信息只會顯示出來,而不是每個用戶。動態數據安全修整
Q
動態數據安全修整
0
A
回答
1
至於在動態數據中實現的安全性我想向你推薦一本好書由Oleg Sych發佈的ASP.NET動態數據發佈。
至於你的情況,我瞭解你需要的只是List.aspx頁包含當前登錄用戶的ID或名稱記錄的GridView顯示。
讓我們考慮解決您的問題保持動態數據方法的最簡單方法。
讓我們假設,不考慮用戶如何訪問您的數據的動態網站,我們已經得到了用戶標識代碼List.aspx背後的。爲簡單起見,假設我們的表格包含用戶Id's。
List.aspx.cs(部分)
public partial class List : System.Web.UI.Page
{
protected int userId;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
userId = GetLoggedUser();
}
}
}
接着就要用特殊的非可視控制的QueryExtender和使用我們把它與我們的基於LINQ的數據源控件相關聯的財產的TargetControlID(假設我們在這種情況下有EntityDataSource)。
List.aspx(部分)
<asp:GridView
ID="gvTest"
runat="server"
DataSourceID="DetailsDataSourceTest"
AllowPaging="true"
AllowSorting="false"
PageSize="10"
CssClass="gridview"
AutoGenerateColumns="false">
<Columns>
<asp:DynamicField DataField="UserId" />
<asp:DynamicField DataField="Col1" />
<asp:DynamicField DataField="Col2" />
<asp:DynamicField DataField="Col3" />
</Columns>
</asp:GridView>
<asp:EntityDataSource
ID="DetailsDataSourceTest"
runat="server"
ConnectionString="name=TestEntities"
DefaultContainerName="TestEntities"
EnableFlattening="false"
EntitySetName="TableTestName" />
<asp:QueryExtender
ID="QueryExtenderTest"
runat="server"
TargetControlID="DetailsDataSourceTest">
<asp:CustomExpression OnQuerying="QueryExtenderTest_Querying" />
</asp:QueryExtender>
正如你可以看到,我們使用CustomExpression的QueryExtender控制的選項,然後我們設置其OnQuerying屬性QueryExtenderTest_Querying。這將允許我們執行我們的定製 LINQ查詢。
List.aspx.cs(部分地)
protected void QueryExtenderTest_Querying(object sender, System.Web.UI.WebControls.Expressions.CustomExpressionEventArgs e)
{
if (/* check userId if you would like */)
{
e.Query = (from c in e.Query.Cast<TableTestName>()
where (c.UserId == userId)
select c);
}
}
更多信息:
Walkthrough: Filtering Data in a Web Page Using Declarative Syntax
編輯:
基於它簡單的解決方案,並且根據在您的動態數據網站中實施路由喲你應該在Details.aspx頁面和Edit.aspx頁面上使用自定義的LINQ,以便用戶無法通過查詢字符串訪問自己的記錄。
相關問題
- 1. 動態修改spring安全攔截URL
- 2. 動態修補數據庫
- 3. 基於oauth的html安全修整
- 4. 動態修整列值
- 5. reinterpret_cast整數浮動是否安全?
- 6. 安全刪除動態二維數組
- 7. 「安全」動態演員?
- 8. 動態.htaccess子域安全
- 9. C++線程安全整數
- 10. 動態Ax中的可擴展數據安全
- 11. 動態數據自定義角色/安全性按表
- 12. 不安全狀態和安全狀態
- 13. 使用數據庫中的數據整合彈簧安全
- 14. 動態修改HTTP POST數據
- 15. Asp.net動態數據修改列大小
- 16. WCF安全 - 數據來源安全
- 17. 數據庫安全性不夠安全
- 18. 數據庫安全
- 19. Docker數據安全
- 20. MVC數據安全
- 21. iphone數據安全
- 22. 如何安全移動CBB數據庫?
- 23. 修復數據完整性
- 24. ace tooltip全局顯示動態數據
- 25. 更改的「全局」數據源動態
- 26. 循環修改數組是否安全?
- 27. 動態調整數據結構
- 28. 彈簧安全方法的安全性和動態
- 29. 如何通過Symfony安全獲取動態安全權限
- 30. 安卓:修改數據庫