簡體   English   中英

控制器/視圖中的條件/受限訪問? (MVC2)

[英]Conditional/limited access in a controller/view? (MVC2)

我目前在我的網站上使用兩個角色,作者和管理員。 作者無法訪問用戶管理功能。 但是,他們應該能夠編輯其個人資料的某些部分。 管理員當前可以編輯用戶個人資料的所有部分。 例如:

employee ID   [admin]
display name  [author,admin]
roles         [admin]

我想在可能的地方重用代碼。 我不確定最好的解決方案是什么。 有兩件事要處理

  1. 僅允許用戶編輯自己的個人資料,不允許其他人編輯
  2. 限制用戶可以編輯哪些字段以及管理員可以編輯哪些字段

我認為最好通過自定義Authorize屬性(我已經有一個可以進一步擴展的屬性)實現了#1。 如果您有更好的方法,請分享。 #2我不確定,查看模型嗎? 我使用部分類為用戶綁定了允許的字段,該類對於每個角色都是不同的。

針對#1的解決方案已經確定,您需要使用AuthorizeAttribute

對於#2,您可以只在特定用戶渲染的地方進行安全修剪。

視圖中的一些偽代碼(或將其移至部分視圖):

if administrator
    render employee ID text box
if administrator || author
    render display name text box
if administrator
    render roles check list

因此,您將需要控制如何確定用戶是否處於“角色”。 您可以使用ASP.NET的Membership Provider或自己創建一些。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM