#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-модуле. Эту опцию можно найти, нажав кнопку «Просмотреть сервер»…