2015-06-22 69 views
0

我有一个开放的问题,要了解和看到什么样的策略可以用来做一个安全的下载。Jquery/MVC4安全文件下载

我们有MVC4/JavaScript客户端调用Web API来获取一个多返回的数据和用户界面控制器获取数据并返回一个文件()回下载

请求的URL看起来是这样的:

http://someapplication/downloadfile/1234 

其中1234是要检索的文件的ID。

我们正在尝试为此网址添加一些策略,以便用户无法共享此网址并让其他人下载该文件。

通过使用一些键来使这个网址独特和特定于用户?通过从浏览器或其他东西使用引用?

任何建议

+1

是认证不到位,即用户亩st登录访问文件? – SBirthare

+0

我们拥有sso以允许只有经过身份验证的用户才能访问应用程序..但其他人可能有权访问该下载,我们不希望用户触发下载来共享该链接。不知道我是否有任何意义,因为我正在打字... – fireholster

回答

3

我通常使用的方法Token-In-Header让这些东西的安全和验证用户。 因此,如果用户与任何人分享网址,他们还需要该Token-In-Header进行身份验证。 这是如何工作的

  1. 生成唯一Token为每个用户每次登录(就像会话密钥)
  2. 这种独特token将通过客户端来使用(如:移动应用),同时进行文件下载请求,通过将令牌在Header of request
  3. 在MVC结束时,得到的是头令牌和执行任何验证认证用户(固定文件下载)
+1

令牌可以添加到请求中,如本答复中所述 - http://stackoverflow.com/a/13515414/3748701 –

+1

如果SSO已经实施如果ajax调用和托管应用程序位于同一个域中,那么应用程序可能已经在接收会话/身份验证cookie。在这种情况下,不需要头部,只需在'Controller'的OverAided'OnAuthorization'方法中验证用户请求。 –