2014-09-04 19 views
1

我有一個ASP.NET MVC應用程序有兩個控制器 - 一個將用於所有註冊用戶(因此只有用戶在數據庫中的用戶表中可以訪問此控制器),另一個用於管理員(管理由User表中的Admin屬性中的True值確定)。如何限制基於用戶數據庫表中的'管理'屬性在ASP.NET MVC 4應用程序中的控制器的授權

只是爲了澄清,用戶表有四個屬性:
ID(INT) - 這是相同的ID用戶的Windows ID
用的名字(爲nvarchar)
姓(NVARCHAR)
聯繫(位)

我已經做了一些關於這方面的研究,但未能理解我應該採取哪條路線。在ASP.NET MVC4中,根據用戶是否是Admin來限制訪問的最佳方法是什麼?並且還限制對存儲在數據庫中的ID的用戶訪問總控制器?

任何幫助將不勝感激。謝謝。

回答

0

將所有管理員都放入AD組中會更容易。然後,你可以使用授權屬性 - http://www.asp.net/web-api/overview/security/authentication-and-authorization-in-aspnet-web-api

但是,如果你需要使用這個「用戶表」,那麼我認爲你將不得不把每個控制器方法的if語句。這樣的事情:

string username = User.Identity.Name; 
bool isadmin = select admin from db where user == username; 
if(isadmin) 
{ 
return View(); 
} 
else 
{ 
return HttpNotFound(); 
} 
+0

感謝您的回覆abiNerd! 這是一個我應該研究得更多的解決方案,因爲我還在學習,所以對AD不太瞭解。是否有可能通過應用部分管理AD?即如果用戶被授予管理員訪問權限,是否可以使用c#代碼將此成員添加到AD組? 非常感謝 – Martin 2014-10-01 15:27:04

+0

是的,這是可能的 - http://stackoverflow.com/questions/2143052/adding-and-removing-users-from-active-directory-groups-in-net – abiNerd 2014-10-02 07:28:18

相關問題