доступ к связанным файлам htm из первого файла htm, используя только 1 токен SAS - PullRequest
0 голосов
/ 06 августа 2020

У меня есть куча файлов .htm, в которых есть переход к другим файлам .htm. Я загрузил их в контейнер Azure blob. Я хочу открыть первый файл .htm с токеном SAS и хочу получить через него доступ к другим. Однако, когда это происходит, токен sas больше не существует для других, и поэтому я не могу получить доступ к другим файлам.

Я попытался сначала получить sas для всего контейнера blob, однако проблема по-прежнему сохраняется, так как в самом URL-адресе, когда я перехожу к другому, используя ссылку в первом .htm, он не будет содержать токен sas.

Есть ли какое-либо обходное решение для этого, которое позволит им открыться? Помимо изменения разрешения для контейнера, чтобы разрешить анонимный доступ.

1 Ответ

0 голосов
/ 06 августа 2020

Поскольку ваш тег привязки содержит имя файлов (то есть относительный путь), а не URL-адрес, эти htmls не могут быть связаны напрямую друг с другом через Azure BLOB, поскольку к BLOB-объектам можно получить доступ с помощью URL-адреса. Поскольку вы упомянули, что у вас много таких html файлов, я бы посоветовал вам разместить stati c веб-сайт , поскольку потребуется изменить только один, т.е. запускающий .htm файл.

В целях аутентификации вы можете добавить собственный код javascript в свой начальный [первый] .htm файл, где вы можете аутентифицироваться, если токен SAS присутствует и правильный. Примерно так

<script>
function validateToken(){
    const currentUrl = window.location.href;
    const SASToken = '?' + 'yourSASToken';
    if(currentUrl) {
        const token = currentUrl.split('.htm')[1];
        if(!token || token.length === 0 ||  token !== SASToken){
            window.location = 'error';
        }
    }
}
</script>
<body onload="validateToken();">
<H1>First.htm</H1>
<a href="second.htm">Next</a>
</body>
...