2009-09-10 36 views
0

我們希望阻止其他用戶編輯其他用戶配置文件,仍然允許超級用戶管理所有配置文件。我不知道這樣做的最佳方式,我確信我可以完成它,我主要是尋找最佳方法或最佳方法。如何防止用戶在MVC.NET Web應用程序中編輯除自己以外的其他配置文件?

我想在下面一行之前放置一個IF來顯示那條線,但我不認爲這是最好的方式,因爲其他用戶可能會猜到編輯網址,如:domain.com/user /編輯/ 5例如。

<%=Html.ActionLink("Edit", "Edit", new { id=Model.UserID }) %> 

我們正在使用:ASP.NET MVC,SQL數據庫和ADO.NET數據庫。另外:OpenID訂閱。

回答

3

您需要在控制器操作中編寫一些代碼。基本上是這樣的:

MembershipUser user = Membership.GetUser(); 

if (!User.IsInRole("Administrator") && (user.ProviderUserKey != id)) 
    return View("Unauthorized"); 

在你的情況爲OpenID,它將工作幾乎相同。假設這是僞代碼:

var user = GetLoggedInUser(); 

if (!IsAdmin(user) && (user.UserID != id)) 
    return View("Unauthorized"); 

其中GetLoggedInUser獲取用戶對象爲當前用戶和IsAdmin數字出如果用戶對象是管理員。

+0

Thanks GalcticCowboy:我想我需要在我的數據庫中實現角色,因爲我沒有使用ASP.NET成員框架。我目前使用OpenID。謝謝 – Geo 2009-09-10 02:10:06

相關問題