![](/img/trans.png)
[英]The same asp.net mvc page for LDAP authenticated and anonymous users
[英]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.