簡體   English   中英

ASP.NET MVC - 僅限圖像+經過身份驗證的用戶

[英]ASP.NET MVC - Image + Authenticated Users Only

有可能以某種方式只允許經過身份驗證的用戶查看某些圖像嗎? 我正在建立一個網絡圖庫,我不希望未經過身份驗證的用戶能夠看到圖像。

您可以將這些圖像放在用戶無權訪問的服務器上(例如~/App_Data文件夾),以防止直接訪問它們,然后使用控制器操作來為它們提供服務。 此操作將使用Authorize屬性進行修飾,以僅允許經過身份驗證的用戶調用它:

[Authorize]
public ActionResult Image(string name)
{
    var appData = Server.MapPath("~/App_Data");
    var image = Path.Combine(appData, name + ".png");
    return File(image, "image/png");
}

然后:

<img src="@Url.Action("Image", "SomeController", new { name = "foo" })" alt="" />

在視圖內部,您還可以在顯示圖像之前測試用戶是否經過身份驗證。

是的,可以隱藏未經身份驗證的用戶的圖像。

根據圖像的顯示方式,您可以隱藏它們

1.使用控制器操作的Authorize屬性

2.在將顯示圖像的視圖中包裝HTML

if (User.Identity.IsAuthenticated) {
    // image HTML here   
}

如果沒有經過身份驗證,您可能希望將圖像放在無法查看的位置,例如在Darin建議的App_Data中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM