繁体   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