Я делаю авторизацию у себя на сайте через Open Api vkontakte. У меня есть тестовое приложение, оно - не iфрейм, и флэш, оно создано только для тестирования возможности авторизация через вконтакт у меня на сайте - http://vkontakte.ru/app1862027_51966464. На сайте на странице логина как и положено: App_Init, окошко для авторизации и т.д. HTML: <div id="vk_api_transport"></div> <div id="vk_login_button" onclick="loginUser()"></div> <script src="http://vkontakte.ru/js/api/openapi.js" type="text/javascript" charset="windows-1251"></script> <script type="text/javascript"> VK.init({ apiId: 1862027, nameTransportPath: "/xd_receiver.html" }); VK.UI.button('vk_login_button'); function vk_login() { VK.Auth.login(vk_login_callback); return false; } function vk_login_callback(response) { if (response.status == "connected") { getInitData(); } }; function getInitData() { var code; code = 'return {' code += 'me: API.getProfiles({uids: API.getVariable({key: 1280}), fields: "photo"})[0]'; code += '};'; VK.Api.call('execute', { 'code': code }, onGetInitData); } function onGetInitData(data) { var r; if (data.response) { // alert('da1'); r = data.response; if (r.me) { document.write(r.me.first_name + ' ' + r.me.last_name + '<br/><a href="http://vkontakte.ru/id' + r.me.uid + '"><img width="50" height ="50" src="' + r.me.photo + '"/>'); } } else { alert('no'); } } function loginUser() { vk_login(); onGetInitData(); } </script> Вот только не пойму: если мне нужно будет получить ну например данные пользователя (API.getProfiles()) уже авторизованного пользователя не из html страницы, а из кода asp.net (или php, не важно), то есть на серверной стороне то как мне это сделать? Вот пример, который возвращает ошибку 5 - пользователь не авторизован или 4 - неправильная подпись. Сделан в виде консольного приложения Code: public class MyVkTester { public Random rnd = new Random(); public string MD5(string instr) { string strHash = string.Empty; foreach (byte b in new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(instr))) { strHash += b.ToString("x2").ToLower(); } return strHash; } public int UnixTime() { TimeSpan ts; ts = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0)); return (int)ts.TotalSeconds; } public string SendRequest() { string apiid = "?????"; string userid = "51966464"; string appSecureKey = "?????????????????"; string version = "2.0"; int time = UnixTime(); int unique = rnd.Next(50000); string sig = MD5("api_id="+apiid + "method=getGroupsrandom=" + unique +"test_mode=1"+"timestamp=" + time + "v=2.0" + appSecureKey); string xml = @"http://api.vkontakte.ru/api.php?api_id=" + apiid + "&method=getGroups&random=" + unique + "&test_mode=1" + "×tamp=" + time + "&sig=" + sig; return xml; } } class Program { static void Main(string[] args) { MyVkTester test = new MyVkTester(); string a =test.SendRequest(); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(a); req.Method = "GET"; var response = (HttpWebResponse)req.GetResponse(); using (var stream = new StreamReader(response.GetResponseStream())) { var result = stream.ReadToEnd(); Console.WriteLine(result); } }