如何才能爲絕對路徑(例如www.mysite.it/namefile.pdf)設置c#MVC查看文件僅用於已驗證用戶?使用方法FormsAuthentication.Authenticate()
進行驗證。感謝您的支持。僅針對已登錄用戶的C#MVC視圖文件
0
A
回答
0
我認爲更恰當的方式來做到這一點是:
www.mysite.it/f={filename}
而在你的控制器使用[Authorize]
檢查,如果用戶進行身份驗證。如果用戶通過身份驗證,則允許他查看或下載文件。
下面的代碼可以幫助你瞭解:
//Ensure that the user is authenticated
[Authorize]
public class HomeController : Controller
{
string DefaultFileFolder = "C:/Files";
public ActionResult Index(string f)
{
//File request
if (!String.IsNullOrWhiteSpace(f))
{
var filePath = System.IO.Path.Combine(DefaultFileFolder, f);
var mimeType = "text/plain";
return File(filePath, mimeType);
}
return View();
}
}
0
據我知道這樣做是爲了通過ASP.NET靜態內容路由請求的唯一途徑。通常你不這樣做,因爲IIS本身在服務這些類型的資源方面效率更高。通過設置 runAllManagedModulesForAllRequests =」 true」或取出 ‘managedHandler’前提
在IIS 7這樣做可以:
從this excellent article,您可以強制靜態內容的請求由經過ASP.NET爲UrlRoutingModule。
根據您的需要,您可能希望根據理查德的建議做更多的事情。或許像this?
+1
你好@JasonCoder感謝您的答覆;我添加在web.config中此代碼'
相關問題
- 1. Grails - 在視圖中獲取對已登錄用戶的引用
- 2. HKEY_USERS僅包含已登錄用戶
- 3. SQL用戶僅對視圖進行登錄訪問
- 4. 使Amazon S3文件僅對登錄用戶可用
- 5. django用戶登錄視圖
- 6. MVC,C# - Linq2Twitter - 用登錄用戶發帖
- 7. 防止已登錄的用戶登錄C#
- 8. 已登錄用戶的SSL?
- 9. 禁止對已經「登錄」用戶FOSuserBundle
- 10. 已刪除用戶試圖登錄
- 11. dashboard.setCount,notifications.sendEmail僅適用於已登錄的用戶
- 12. 僅過濾登錄用戶的記錄?
- 13. GCM:僅針對當前用戶登錄的應用程序發送通知
- 14. 直接進入主視圖控制器已登錄用戶
- 15. 用戶配置文件對象爲空,即使用戶已正確登錄?
- 16. Firebase用戶已登錄
- 17. Grails session.user,用戶已登錄
- 18. 僅顯示已登錄用戶的頁面
- 19. 如何僅顯示已登錄用戶的鏈接?
- 20. 如何僅登錄已在Laravel 5.2中驗證的用戶
- 21. 如何限制用戶登錄後的登錄視圖?
- 22. MeteorJS - 與MongoDb同步僅適用於已登錄用戶
- 23. 預防用戶登錄如果用戶已經登錄
- 24. Magento登錄和用戶視圖
- 25. BDD測試帳戶登錄MVC C#
- 26. 顯示已登錄的用戶數據asp.net mvc
- 27. MVC C#登錄Masterpage
- 28. 在一個視圖中的兩個登錄屏幕MVC c#
- 29. 僅針對未登錄用戶緩存整個響應(HTML,js,json,ecc)
- 30. 春季mvc併發用戶登錄mvc
是否要在網站的根目錄中限制訪問所有文件? Coudl將它們移動到子文件夾中? – Carl 2015-02-24 20:31:28