Как избежать жестко закодированных учетных данных в веб-части Sharepoint? - PullRequest
1 голос
/ 21 апреля 2010

Я создаю веб-часть Sharepoint, которая будет использоваться всеми пользователями, но может быть изменена только администраторами. Веб-часть подключается к веб-службе, которая требует учетных данных. Я жестко закодировал учетные данные в коде веб-части.

query.Credentials = new System.Net.NetworkCredential("username", "password", "domain");

query является экземпляром класса веб-службы

Это не очень хороший подход. Что касается безопасности, исходный код сети отдельно доступен для людей, которым не разрешено просматривать учетные данные.

В обычных приложениях ASP.net учетные данные могут быть записаны в web.config и зашифрованы. С веб-частью не связан файл .config. Существует файл .config уровня приложения для всего сайта sharepoint, но я не хочу изменять его для одной веб-части. Интересно, существует ли конкретный веб-сайт способ решения проблемы с учетными данными? Допустим, мы предоставляем свойство WebBrowsable этой веб-части, чтобы привилегированные пользователи могли изменять учетные данные. Если это желательно, как сделать так, чтобы свойство отображалось в пароле ("***"), а не в текстовом формате?

Спасибо.

Ответы [ 4 ]

1 голос
/ 21 апреля 2010

Создать custom toolpart , проверьте условие как SPWeb.UserIsWebAdmin, если это так, отобразите поля, необходимые для учетных данных (текстовое поле ввода, текстовое поле с маской и т. Д.).

1 голос
/ 21 апреля 2010

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

Преимущество этого метода в том, что он позволяет dev / test / what иметь разные учетные данные и не мешать работе при разработке / тестировании / и т.д.

1 голос
/ 21 апреля 2010

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

Если вы хотите предоставить пользовательский интерфейс только администраторам, вам следует создать страницу пользовательских настроек (страница CustomAction + макеты), которая сохраняет учетные данные в свойстве сайта, возможно, зашифрованные, чтобы их можно было прочитать только вашим пользовательским кодом в веб-часть и страница настроек.

1 голос
/ 21 апреля 2010

Считайте имя пользователя и пароль из зашифрованного раздела файла конфигурации. См. https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/programming-and-development/?p=448 для получения дополнительной информации о программном использовании.

...