2011-04-26 57 views
2

使用MVC3我試圖想出檢查數據庫以查看用戶是否被允許訪問文件夾的方法。管理員可以單獨控制每個用戶的課程權限,所以我無法從web.config中控制這個功能。動態用戶權限,以保護MVC3中的文件夾

以下屏幕截圖提供了一個我想要實現的示例: courseA是許多文件夾中只有特定用戶才被允許訪問的示例。我的想法是,我可以使用像OpenCourse(int id)這樣的CourseController動作來檢查數據庫,如果用戶有權訪問某個課程,並且如果是,則允許「允許訪問」整個課程文件夾並打開包含在文件夾中的 player.html文件它。 courseA文件夾中的每個文件的用戶權限可能需要持續用戶的會話。

enter image description here

它甚至有可能從MVC查看文件夾中做這樣的事情,還是應該 courseA文件夾坐別的地方?

回答

1

您可以在數據庫調用中實施這種限制。你可以說,例如:

var courses = ListCoursesForUser(userId); 

然後訪問特定課程時,你可以重用此:

public doSomethingWithCourse(courseId, userId) 
{ 
    var courses = ListCoursesForUser(userId); 

    if(courses.Any(c => c.courseId == courseId)) 
    { 

    } 
} 
+0

尼斯,謝謝。然而,我正在尋找MVC 3方面的解決方案。在我的控制器中,我重寫了'OnActionExecuting',其中我做了類似於您的建議。仍然在尋找比OnActionExecuting更優雅的解決方案 – BumbleB2na 2011-05-18 05:05:08

+0

您應該也可以在模型中使用類似的代碼 – Garvin 2011-05-18 14:31:14