2015-08-17 3 views
0

У меня есть веб-проект ASP.net, который включает в себя форму и базу данных. Когда пользователь регистрируется на сайте (а не из facebook), у него есть имя пользователя, а затем, когда он заполняет форму, я могу добавить это имя пользователя в столбец «имя пользователя» в базе данных (используя User.Identity.Name). Когда он вошел в систему с помощью facebook, я не могу этого сделать. Поэтому я думал использовать его идентификатор facebook, так как любой ID отличается, но я не могу найти способ сделать это. Я попытался получить идентификатор с помощью response.id, установить значение в ярлыке, а затем получить содержимое метки из кода для передачи его в БД, но это не сработало. вот код, который я попробовал:Возможно ли передавать данные, полученные с помощью API-интерфейсов facebook в базу данных в ASP.NET?

Установите ID на этикетке:

function testAPI() { 
FB.api('/me?fields=name,email,gender,age_range,picture.width(45).height(44),location', function (response) { 
    console.log('Successful login for: ' + response.name); 
    document.getElementById('HiddenFacebookID').innerText = response.id; 
}); 

}

Этикетка:

<asp:Label ID="HiddenFacebookID" runat="server"></asp:Label> 

Код фоновым:

conn.Open(); 
      string insertQuery2 = "INSERT INTO UserData (username) values (@username)"; 
      SqlCommand com2 = new SqlCommand(insertQuery2, conn); 
      com2.Parameters.AddWithValue("@username", HiddenFacebookID.Text); 
com2.ExecuteNonQuery(); 

Содержание ярлыков действительно facebook-ID, но база данных получает NULL. Пожалуйста, дайте мне знать, если я не понял. Буду признателен за любую помощь, спасибо!

ответ

1

Значение, которое вы устанавливаете в JavaScript, не отправляется обратно на сервер. На сервер отправляются только значения формы. И asp:Label не отображается как элемент формы.

Используйте скрытое поле формы вместо:

<asp:Hidden ID="HiddenFacebookID" runat="server"></asp:Hidden> 

и установите его значение в JavaScript:

document.getElementById('HiddenFacebookID').value = response.id; 

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

+0

Работы потрясающие. Спасибо огромное! – Idan

Смежные вопросы