Папки безопасности DNN изменяют URL-адрес файла

#dotnetnuke #dotnetnuke-7

#dotnetnuke #dotnetnuke-7

Вопрос:

С помощью DotNetNuke я обнаружил возможность использовать защищенные папки. Как мы можем сохранить полный URL-адрес файла в пределах заданной папки безопасности в обычном режиме? (т. Е. без процесса токена, прикрепленного к URL-адресу и отображающего полный путь к папке).

Существует ряд причин, по которым мне понадобился бы путь / имя файла, который можно прочитать в его исходном местоположении. Да, я хочу, чтобы папка была доступна только для пользователей, имеющих привилегии на это местоположение, но не за счет изменения пути / имени файла с помощью токена.

Таким образом, независимо от того, вошли вы в систему или нет, вы должны заметить существование

 http://dnnsite.com/my-secure-folder/my-file.pdf
  
  • Если вы вышли из системы, то происходит действие, говорящее о том, что вам не разрешено просматривать этот файл.

  • Если вы вошли в систему, то у вас есть полный доступ к просмотру этого URL

Спасибо

Ответ №1:

Тогда это было бы небезопасно. Чтобы получить доступ к файлу таким образом, как сформирован ваш URL, вы должны использовать «обычную» папку, но вы не можете достичь своей цели по ограничению доступа.

Поясняю: файлы, загруженные в защищенную папку, получают дополнительное расширение («.resources») к своему исходному имени файла. Файлы с этим расширением не будут доставляться IIS (по крайней мере, не в настройках по умолчанию), и DNN предоставляет обработчик файлов («LinkClick.aspx»), который доставляет файл с этим расширением, а также гарантирует, что пользователь, который пытается получить доступ к файлу, имеет необходимые разрешения в защищенной папке.

Что вы можете сделать на своем сайте, так это что-то вроде ссылки в HTML-модуле, который доступен для всех, но использует обработчик файлов для доступа к файлу, а папка ограничена определенной ролью (<a href=»/LinkClick.aspx?fileticket= …»><a rel="noreferrer noopener nofollow" href="https:///dnnsite.com/my-secure-folder/my-file.pdfhttp://dnnsite.com/my-secure-folder/my-file.pdf </a>). Это приводит к экрану входа, когда пользователь не вошел в систему.

Комментарии:

1. Майкл, я перечитал ваше решение и думаю, что это может сработать. Вы случайно не знаете веб-сайт, на котором больше обсуждается ваше предложение, упомянутое вами при внедрении rh LinkClick в href и перенаправлении пользователей на экран входа в систему, если они не вошли в систему? Ищем более креативные способы с этим. Миллион благодарностей!

2. Извините, я не видел ваш комментарий раньше, так что, возможно, ответ уже устарел. Тем не менее: это просто, и это работает. Я не знаю статьи об этом, но это довольно легко реализовать. Просто выберите соответствующую опцию (что-то вроде «Относительный защищенный URL» или «Абсолютный защищенный URL») при вводе ссылки в HTML-модуле. Эту опцию можно найти, нажав кнопку «Просмотреть сервер»…