2015-04-16 4 views
0

Я новичок в проекте sharepoint 2010. Когда я просмотрел код, во многих местах я обнаружил, что свойство SPWeb.AllowUnsafeUpdates установлено равным true, даже если в каких-либо элементах списков нет обновлений. Существует выборка данных списка. Является ли это актуальным, пока нет каких-либо обновлений в любом из списков, чтобы использовать AllowUnsafeUpdates для установки на true?Нужно ли устанавливать свойство allowunsafeupdates, когда элемент списка выбирается в sharepoint?

SPWeb thisWeb = workflowProperties.Web; 
         thisWeb.AllowUnsafeUpdates = true; 
         SPList EmployeeDetails = thisWeb.Lists[BasicEmployeeDetailsList]; 
         SPList list = workflowProperties.Web.Lists[workflowProperties.List.ID]; 
         SPListItem compensatoryLeaveItem = workflowProperties.Item; 
         DataTable creatermail = new DataTable(); 
         editurl = workflowProperties.SiteUrl.ToString() + list.DefaultEditFormUrl + "?ID=" + compensatoryLeaveItem["ID"].ToString() + "&Popup=false"; 
         string EmployeeDetailsID = compensatoryLeaveItem["Created By"].ToString().Substring(compensatoryLeaveItem["Created By"].ToString().IndexOf('#') + 1); 
         string listQuery = "<Where><Eq><FieldRef Name='LoginName' /><Value Type='User'>" + EmployeeDetailsID + "</Value></Eq></Where>"; 
         SPQuery query = new SPQuery(); 
         query.Query = listQuery; 
         SPListItemCollection createrCol = EmployeeDetails.GetItems(query); 
         creatermail = createrCol.GetDataTable(); 
         createdbymail = creatermail.Rows[0][FieldMail].ToString(); 
         creater = creatermail.Rows[0][FieldFullName].ToString(); 
         GetHrDetails(thisWeb); 
         thisWeb.AllowUnsafeUpdates = false; 

ответ

0

Если нет действительно никаких обновлений, происходящих тогда, насколько мне известно, нет необходимости быть установка SPWeb.AllowUnsafeUpdates = true. Чтобы понять, что это свойство делает мы можем процитировать MSDN documentation:

Получает или задает логическое значение, указывающее, следует ли разрешить обновления базы данных в результате запроса GET или не требуя проверки безопасности.

И далее:

Установка этого свойства истинно открывает риски безопасности, потенциально представляя уязвимости межсайтовых скриптов.

Таким образом, это предназначено для защиты ваших сайтов SharePoint. Вы должны попробовать НЕ обновлять свои сайты SharePoint в результате запроса GET или проверки безопасности. Вы можете найти это более подробное объяснение, полезное на Hristo Pavlov's blog. Я сделал это, когда пытался понять это.

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

+0

Благодарим за помощь. На самом деле мне было интересно, что делает эта часть кода в этой функции. Теперь я понял, что его можно избежать .. Еще раз спасибо :) –

0

это требуется только во время обновлений. Нет необходимости во время сбора данных.