我有一个控制器操作,当点击一个链接时,它会向用户返回一个受密码保护的zip文件。密码是随机生成的。
如果下载成功,我想在控制器上调用另一个操作方法来获取密码并将其显示在屏幕上。我很乐意在一个请求中完成所有操作,但感觉可能并不是非常糟糕。
我正在使用此库下载文件jquery download library
我不能使用tempdata或会话状态并且点击数据库感觉有点像使用锤子来破解坚果。我已经考虑将它存储在响应或cookie中,但这也感觉有些不对。
答案 0 :(得分:0)
URL或隐藏字段应该这样做(也就是说,它们都是用户存储的,作为POST或GET请求的一部分)。 问题是,如何将密码返回给客户端并同时开始下载。如果没有服务器存储,则无法执行此操作,因为它们是单独的HTTP请求(除非您使用cookie)。我认为这是最好的方法:
所以,这可能是你的架构的逆转。并且可能这是不可接受的(您可能希望生成安全密码并保证用户不会弄乱它们 - 如果您在下载请求中传递密码,则可能)。但这是没有服务器或cookie存储的唯一方法。
答案 1 :(得分:0)
使用 return RedirectToAction(“Action”,new {id = 99});