Чтобы получить приложение / поток октетов, вы должны установить arraybuffer
в качестве типа ответа в Angular HttpHeaders
.
Это метод обслуживания:
fetchOutput(): Observable<ArrayBuffer> {
let headers = new HttpHeaders();
const options: {
headers?: HttpHeaders;
observe?: 'body';
params?: HttpParams;
reportProgress?: boolean;
responseType: 'arraybuffer';
withCredentials?: boolean;
} = {
responseType: 'arraybuffer'
};
return this.httpClient
.get('https://your-service-url.com/api/v1/your-resource', options)
.pipe(
map((file: ArrayBuffer) => {
return file;
})
);
}
Это вызов метода обслуживания и функции saveAs
:
this.yourService
.fetchOutput()
.subscribe((data: any) => {
const blob = new Blob([data], { type: 'application/octet-stream' });
const fileName = 'Your File Name.csv';
saveAs(blob, fileName);
})
Поскольку другие пользователи предлагают: 401 Несанкционированный - это обычно ошибка на стороне клиента из-за отсутствия учетных данных.
Странно достаточно у Scott Hanselman было сообщение на UrlScan сегодня, который является одной вещью, которую Вы могли сделать, чтобы помочь контролировать и минимизировать потенциальные угрозы. Это - довольно интересное чтение.
UrlScan действительно походит на хорошую опцию для iis6 и 7; я также нашел: dotDefender для платы, которая также покрывает Apache или IIS 5-7, и я нашел санитарию Внедрения SQL ISAPI
Также стоит отметить в свете недавней широкой попытки Внедрения SQL распространения, что запрещение учетной записи пользователя дб Вашего веб-приложения от запросов системных таблиц (в SQL Server MS это - sysobjects и syscolumns) является хорошей идеей.
Я думаю, что этот поток гарантирует более бесплатные решения для Apache и других веб-серверов.
К сожалению, обнаружение проникновения не было тем, что я имел в виду, таким образом, sgfree не является точно монитором нападения на веб-сайт, если я не понимаю, как это работает.
Если бы Вы могли бы возвратиться и изменить свой код приложения, я предложил бы получить log4j/log4net, интегрированный в приложение. Оттуда Вы могли написать код, который проверит поле формы, или URL (скажите на global.asax уровне для приложений.NET), и сделайте запись в журнале, когда вредоносный код обнаруживается.
Хорошая вещь о log4j/log4net состоит в том, что можно настроить тип e-mail/pager/SMS appender поэтому, как только злонамеренная попытка была поймана, Вы будете уведомлены.
Я нахожусь в процессе слияния некоторого кода log4net в нашу систему CMS, которую мы имеем, и я надеюсь делать просто это в свете притока нападений ASPRox, которые происходили наш путь.
Контроль сети и журналов доступа DB должен предупредить Вас к вещам как это, но если бы Вы хотите более полно известную систему предупреждений, я предложил бы некоторый IDS/IPS. Вам будет нужна запасная машина, хотя, и переключатель, который может сделать зеркальное отражение порта. Если у Вас есть они затем, IDS является дешевым способом контролировать Ваш трафик для многих попыток проникновения (будут партии). Фырканье (www.snort.org), базирующиеся IDSes превосходны, и существует некоторые бесплатные полностью упакованные доступные версии. Один я использовал, StrataGuard (http://sgfree.stillsecure.com/), и он может быть настроен как IDS (Система обнаружения проникновения) или как IPS (Система предотвращения проникновений). Это свободно использовать, если Ваш трафик не превышает 5 Мбит/с. Если бы Вы действительно идете с IDS/IPS, я советовал бы Вам позволять ему работать как простой IDS в течение приблизительно одного месяца, прежде чем Вы позволите ему предотвращать нападения.
Это может быть излишеством, но если у Вас есть запасная машина, лежащая вокруг этого, не может повредить иметь IDS, работающий пассивно.