2012-11-13 25 views
1

我目前使用的是MVC4。使用MVC4在運行時處理文件權限

  • 我在我的項目中有一個文件夾有文件(圖像,文檔和pdf 文件)。
  • 我有一個擁有訪問每個文件權限的用戶列表(.net成員資格 guid)的數據庫。

什麼我目前正在研究,我問你的意見,因爲我從來沒有它MVC:

任何關於如何捕捉到文件的HTTP請求,然後在運行時,如果決定尖用戶有權訪問或不訪問? 是否有任何一種HTTP處理程序讓我在MVC上做到這一點? 任何其他想法或提示?

提前感謝!..

即插即用

+0

這與webforms有何不同? –

+0

我不知道......我認爲MVC可能會給我一些我不知道的做法(或最佳方式)的新方法。這就是爲什麼我做了這個帖子 – PnP

回答

1

我將創建一個新FileAuthorizeAttribute和裝點一新控制器的方法。

public class FileAuthorizeAttribute: AuthorizeAttribute 
{ 
    protected override bool IsAuthorized(HttpActionContext actionContext) 
    { 
     if (base.IsAuthorized(actionContext)) 
     { 
      // check if guid is in your database 
     } 

     return false; 
    } 

    public override void OnAuthorization(HttpActionContext actionContext) 
    { 
     base.OnAuthorization(actionContext); 
    } 
} 

public class FileController : Controller 
{ 
    [FileAuthorize] 
    public FileResult Load(string fileName) 
    { 
     //return File(fileName, contentType); 
    } 
} 
+0

我會嘗試!聽起來就像我在找什麼。所以你認爲「fileName」字符串會帶來你試圖訪問FileResult函數的文件?謝謝! – PnP