【问题标题】:Password protect a file on the internet [closed]密码保护互联网上的文件[关闭]
【发布时间】:2014-07-15 03:58:51
【问题描述】:

我有一个文件,我想使用程序从我的计算机访问,而不是浏览器。但我不想让其他人看到它。所以我想在请求的同时发送一个密码。

如何将文件设置为需要密码? (任何类型的文件。不一定是有代码隐藏的网页。)

我进行了搜索,但只能找到有关设置登录页面的说明。这不是我想要的。

编辑

我看到类似Using HTTP Authentication with a C# WebRequest 的帖子使用NetworkCredential - 但似乎要使用基本身份验证,需要使用Windows 用户帐户。这是不安全的。有没有办法为特定的文件或文件夹创建密码(如果需要,可以添加用户名)

【问题讨论】:

  • 您可以将您的 Web 服务器设置为基本的 http 身份验证,然后使用 HttpWebRequestWebClient 类访问它:stackoverflow.com/questions/707888/…
  • @Hinek 这正是我想要做的 - 但该链接仅显示如何使用密码访问它。如何设置页面以要求它?
  • 您使用的是哪种网络服务器? IIS?阿帕奇?
  • @Hinek IIS.​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
  • @CloseVoters - 想解释一下原因吗?

标签: c# html asp.net .net security


【解决方案1】:

您需要在服务器上使用某种身份验证机制。

有几种可能:

  1. 在请求标头中传递用户名/密码(确保使用 HTTPS 并可能散列密码);
  2. 使用用户代理来“检查”它是什么/是谁(不太推荐,容易伪造)。

我会选择 1:

HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create("url");
wr.Headers["username"] = ...

在服务器端,使用HttpHandler 或类似的东西来检查对文件的访问并将正确的传递给它。

【讨论】:

  • 谢谢。这听起来是个好主意。
  • +1。但我仍然想要一个适用于任意文件类型的更简单的答案。
  • 然后设置定期身份验证,就像在 cmets 中建议的那样。然而,这不会给你额外的控制,而只是密码检查。
  • 谢谢。但我正在寻找简单的密码保护,而不是基于用户的保护。
  • 这个答案也将达到这个目的。不要使用“用户名/密码”,而是使用“应用程序密钥/密码”。现在它不再基于用户,因为您只能从“应用程序”传递它。
【解决方案2】:

您可以将您的 Web 服务器设置为基本的 http 身份验证,然后在客户端程序中使用 HttpWebRequestWebClient 类来访问它:Using HTTP Authentication with a C# WebRequest

在服务器上:在 IIS 管理器中选择包含您的文件的文件夹,然后:

  • 配置身份验证(禁用匿名 + 启用基本)
  • 创建用户
  • 配置授权规则(删除所有用户并添加您的用户)

也许这个问题对你也有帮助:How do I create a user account for basic authentication?

【讨论】:

猜你喜欢
  • 2013-05-11
  • 2012-07-20
  • 2013-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
  • 2014-05-11
相关资源
最近更新 更多