如何在允许用户“src”图像或下载文件之前对Web用户进行身份验证?还有一些条件是这些文件是公开的。
我在考虑在RegisterGlobalFilters中的global.asax中添加一个过滤器
过滤器就像......
public void OnFileRequest(string passToken)
{
//validate passToken
if (isValid(passToken))
//allow download
else
{
//authenticate using session
if (authenticated)
//allow download
else
//return exception
}
}
答案 0 :(得分:2)
不是直接链接到实际内容,而是存储将唯一标识符(GUID?)映射到实际文件的字典。然后,您可以使用操作结果来允许下载。
示例:
public ActionResult GetImage(Guid id){
if(SomeFunctionToDetermineIfAllowed()){
return new FileResult(...);
}else{
return RedirectToAction("NotFound");
}
}
答案 1 :(得分:0)
使用表单身份验证并检查Cookie。
答案 2 :(得分:0)
存储在某个文件夹中的文件,可以根据要求下载(使用经过身份验证的用户)
要实现这一目标,请按照以下步骤操作。
文件夹(存储文件的位置)必须包含web.config文件,或者普通的web.config文件必须定义为将用户身份验证限制为仅经过身份验证的用户。 使用以下xml标签。
<location path="~/Download_url_page(Folder,File url).aspx">
<system.web>
<authorization>
<allow users="John"/> // allow John to Download file.
<deny users="*"/> // deny others
</authorization>
</system.web>
</location>
登录用户(特定)/登录用户(非特定但经过身份验证的用户)的方式相同。下载可以限制。
<authorization>
<deny users="?"/> //this will restrict anonymous user access
</authorization>
我希望这能解决你的问题。