Защищено паролем .NET ClickOnce развертывания?

Выполняя небольшую настройку внутренней функции и используя lapply по индексу вместо самого фактического списка, это делает то, что вы хотите

x <- c("yes", "no", "maybe", "no", "no", "yes")
y <- c("red", "blue", "green", "green", "orange")
list.xy <- list(x=x, y=y)

WORD.C <- function(WORDS){
  require(wordcloud)

  L2 <- lapply(WORDS, function(x) as.data.frame(table(x), stringsAsFactors = FALSE))

  # Takes a dataframe and the text you want to display
  FUN <- function(X, text){
    windows() 
    wordcloud(X[, 1], X[, 2], min.freq=1)
    mtext(text, 3, padj=-4.5, col="red")  #what I'm trying that isn't working
  }

  # Now creates the sequence 1,...,length(L2)
  # Loops over that and then create an anonymous function
  # to send in the information you want to use.
  lapply(seq_along(L2), function(i){FUN(L2[[i]], names(L2)[i])})

  # Since you asked about loops
  # you could use i in seq_along(L2) 
  # instead of 1:length(L2) if you wanted to
  #for(i in 1:length(L2)){
  #  FUN(L2[[i]], names(L2)[i])
  #}
}

WORD.C(list.xy)
11
задан Matt Hamilton 13 October 2008 в 01:51
поделиться

4 ответа

Я нашел возможное решение один в этой статье MSDN: Развертывание ClickOnce и безопасность.

ASP.NET основанная на форме аутентификация

Если Вы хотите управлять, к какому развертыванию каждый пользователь может получить доступ, Вы не должны включать анонимный доступ к приложениям ClickOnce, развернутым на веб-сервере. Скорее Вы включили бы пользовательский доступ к развертыванию, которое Вы установили на основе идентификационных данных пользователя (использующий аутентификацию Windows NT).

Если Вы развертываетесь к среде без аутентификации Windows NT, решение могло бы состоять в том, чтобы попытаться использовать ASP.NET основанная на форме аутентификация для аутентификации пользователя. Однако ClickOnce не поддерживает аутентификацию на основе форм, потому что он использует персистентные cookie; они представляют угрозу безопасности, потому что они находятся в кэше Internet Explorer и могут быть взломаны. Поэтому при развертывании приложений ClickOnce любой сценарий аутентификации помимо аутентификации Windows NT не поддерживается.

Передача аргументов

Дополнительное соображение безопасности происходит, если необходимо передать аргументы в приложение ClickOnce. ClickOnce позволяет разработчикам предоставить строку запроса к приложениям, развернутым по сети. Строка запроса принимает форму серии пар "имя-значение" в конце URL, используемого для запущения приложения:

http://servername.adatum.com/WindowsApp1.application?username=joeuser

По умолчанию аргументы строки запроса отключены. Чтобы включить им, атрибут trustUrlParameters должен быть установлен в декларации развертывания приложения. Это значение может быть установлено из Visual Studio и из MageUI.exe. Для подробных шагов о том, как позволить передать строки запроса, посмотрите Как к: Получите информацию о Строке запроса в Приложении ClickOnce.

Вы никогда не должны передавать аргументы, полученные через строку запроса к базе данных или к командной строке, не проверяя аргументы, чтобы удостовериться, что они безопасны. Небезопасными аргументами являются, которые включают базу данных или символы ESC командной строки, которые могли позволить злонамеренному пользователю управлять Вашим приложением в выполнение произвольных команд.

Примечание: Аргументами строки запроса является единственный способ передать аргументы приложению ClickOnce при запуске. Вы не можете передать аргументы приложению ClickOnce из командной строки.

12
ответ дан 3 December 2019 в 08:31
поделиться

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

Если Вы хотите защитить клиент так, Вам, вероятно, придется придумать другой способ развернуть его.

1
ответ дан 3 December 2019 в 08:31
поделиться

Установщик ClickOnce является просто парой файлов установщика, просиживающих на Вашем веб-сервере, правильно? Таким образом можно просто реализовать своего рода безопасность каталога на тех файлах. Можно сделать это на паре разных уровней, которым я верю; например, полномочия IIS или (если Ваши пользователи находятся на Вашем домене), полномочия NTFS.

Кроме того, полномочия IIS (все на самом деле?) должен смочь быть установкой программно.

0
ответ дан 3 December 2019 в 08:31
поделиться

Единственное решение, которое я когда-либо встречал, находится здесь: Нажмите, как только Forms Auth

Мы столкнулись с той же проблемой при попытке защитить приложение. Одна проблема с решением выше, которую я заметил, заключается в том, что информация о файлах cookie находится в URL-адресе, что означает, что если кто-то теоретически перехватил URL-адрес, он может использовать его также для загрузки приложения. В остальном это кажется жизнеспособным решением.

1
ответ дан 3 December 2019 в 08:31
поделиться
Другие вопросы по тегам:

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