我对dotnetnuke相对较新,我正在尝试建立一个简单的网站,该网站将拥有多个拥有自己文件集的用户组,然后是另一个可以访问所有文件的用户。
我目前正在使用“文档”模块执行此操作,并将模块隐藏在除了用户和特定公司用户之外的所有模块中。这很好,但安全性似乎只是默默无闻的安全性。
如果我以用户A身份登录并访问文件A并复制其网址。然后我退出并以用户B登录,无法看到该文件。如果我然后将文件url放入浏览器,它似乎下载正常。
有人可以告诉我,如果我做错了,或者文件下载没有基于用户的实际安全性吗?我已经尝试了goign到实际的文件管理器并使目录显然不能被用户B查看(它们也是安全目录)但仍然存在。我在文件某处错过了权限选项,或者安全性是否只是为了阻止您找到文件的正确链接?我会承认这些链接是不可猜测的(网址中没有连续的ID或类似的东西)但我对这样的安全工作仍然有点不舒服......
答案 0 :(得分:1)
嗨克里斯,
请查看上面链接的FileManager模块。您是正确的,当前的FileManager模块不允许每个用户角色访问。您可以查看Snowcovered的可能替代品吗?
答案 1 :(得分:0)
答案 2 :(得分:0)
Documents模块为路由到ASP.NET的 LinkClick.aspx 网址提供安全保护。
如果实际文件位于站点根文件夹下的文件系统中,则IIS会为这些文件提供直接URL 。 例如,为了防止未经授权访问直接URL,您可以禁用匿名身份验证并设置具有NTFS权限的基本身份验证。
如果不想触摸IIS并管理Windows帐户,则无法将文件直接存储在任何公开可用的IIS文件夹下。 ASP.NET应用程序级别的安全性是使用文件加密实现的,或者将文件存储在公共IIS文件夹之外,就像在数据库中一样。 DNN文件管理器提供以下两个选项:文件系统中的安全文件夹和数据库中的安全文件夹。
还有第三方模块来管理文件安全性和共享,例如NukeTransfer。