Установщик Windows (.msi). Пользовательские действия. Нужно ли запутывать / защищать код пользовательских действий, написанный на C #? Есть ли способ разобрать его?

Остальная часть вашего кода выглядит правильно, я думаю, что ваш console.log(this) находится в неправильном месте.

ngOnInit() {
  this.getPost();     <----- your getPost() function is asynchronous
  console.log(this);  <----- meaning this console.log runs before you get data from Firebase
                             so when this runs, posts is still undefined.
                             If you would console.log(this) *AFTER* you get data
                             from Firebase, then you should see the values OK.
}

getPost(){
  const id= this.route.snapshot.paramMap.get('id')
  return this.postService.getPostData(id).subscribe(data=>this.post=data)
                                      ^^^^^^^^^^^
                                        ASYNC portion is right here
}

Чтобы исправить это, переместите консоль.log внутри своей подписки:

ngOnInit() {
  this.getPost();
                    <--- From here
}

getPost(){
  const id= this.route.snapshot.paramMap.get('id')
  return this.postService.getPostData(id).subscribe(data=> {
    this.post=data;
    console.log(this);          <--- To here
  });
}

EDIT - Дополнительное устранение неполадок см. ниже.

getPost(){
  const id= this.route.snapshot.paramMap.get('id')
  console.log('id from route params is: ' + id);   <---- log the *id* too
  return this.postService.getPostData(id).subscribe(data=> {
    this.post=data;
    console.log(data);   <--- log *data* instead
  });
}
1
задан Stanislav 19 January 2019 в 12:54
поделиться

1 ответ

Нет чувствительности, нет проблем : Я второй, что Клаус сказал: содержит ли этот код что-нибудь чувствительное? [ 1114] Обычно чувствительные аспекты вращаются вокруг лицензирования или ключей , которые вы хотите защитить. Обязательно скомпилируйте двоичные файлы режима Release (было бы здорово, если бы не требования времени выполнения на обычных машинах также не выполнялись).

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

Собственный код : Если у вас есть серьезные проблемы с чувствительностью, я бы скомпилировал настраиваемое действие C ++ вместо настраиваемого действия управляемого кода, чтобы сделать что-то еще »[115 ] до металла ". Это также отлично подходит для обеспечения минимальных зависимостей времени выполнения (статическое связывание).

Открытый исходный код : Откровенно говоря, я бы рассмотрел открытый исходный код всего своего установочного кода, если нет чувствительности. Если у пользователей есть проблема, они могут отлаживать себя сами, хотя во многих случаях выгода от этого может быть просто ужасной. Вы можете закрыть отдельные индивидуальные действия, которые требуют чувствительности. Я бы использовал открытый исходный код в качестве аргумента продаж - да, вы можете увидеть наш исходный код настройки для настройки в вашей среде, если это будет необходимо.

Установка похожа на резюме: она существует только как средство доставки чего-то еще ценного? Само по себе оно не имеет значения. Вы хотите продажи своего программного обеспечения в первую очередь? И безопасность конечно. Разрешение пользователям компилировать свои собственные настройки из ваших источников также может привести к проблемам - конечно. Вы хотите поддержать самоскомпилированную установку?

0
ответ дан Stein Åsmul 19 January 2019 в 12:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: