Страница: 1 |
Вопрос: Новое соединение и вдруг какой то сертификат | Добавлено: 16.10.05 18:38 |
Автор вопроса: ![]() |
Создаю совей прогой новое удалённое соединение.
Рабочий пример см внизу. проблема: На моём домашнем компе созданное удалённое соединение работает На компе заказчика - не работает - говорит проблема с сертификатом. Вопрос: как решить эту проблему ? Я так понимаю дело в некоей проверке сертификатов у меня дома вин2000 и я админ и наверно у меня не включена проверка сертификатов у него ХР и наверно включена проверка сертификатов, и хотя я на его компе тоже админ, винда не понимает, кто создал это соединение. Полагаю выход №1 - отключить эту проверку, что понизит уровень безопасности и что собственно не годится. Какие ещё могут быть решения ? Всем спасибо. 'Получает параметры имеющегося соединения Public Declare Auto Function RasGetEntryProperties Lib "rasapi32.dll" (ByVal IpszPhoneBook As String, ByVal IpszEntry As String, ByRef IpRasEntry As RASENTRY, ByRef IpdwEntryInfoSize As Integer, ByVal devinfo As Integer, ByVal devinfosize As Integer) As Integer 'Записывает параметры нового соединения Public Declare Auto Function RasSetEntryProperties Lib "rasapi32.dll" (ByVal IpszPhoneBook As String, ByVal IpszEntry As String, ByRef IpRasEntry As RASENTRY, ByRef IpdwEntryInfoSize As Integer, ByVal devinfo As Integer, ByVal devinfosize As Integer) As Integer 'структура с данными соединения <StructLayout(LayoutKind.Sequential, Pack:=4, CharSet:=CharSet.Auto)> Structure RASENTRY Public dwSize As Integer Public dwfOptions As Integer Public dwCountrylD As Integer Public dwCountryCode As Integer <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=11)> Public szAreayCode As String '11 символов <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=129)> Public szLocalPhoneNumber As String Public dwAlternateOffset As Integer Public ipaddr As Integer Public ipaddrDns As Integer Public ipaddrDnsAlt As Integer Public ipaddrWins As Integer Public ipaddrWinsAlt As Integer Public dwFrameSize As Integer Public dwfNetProtocols As Integer Public dwFramingProtocol As Integer <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public szScript As String <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public szAutodialDll As String <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public szAutodialFunc As String <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=17)> Public szDeviceType As String <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=129)> Public szDeviceName As String <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=33)> Public szX25PadType As String <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=201)> Public szX25Address As String <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=201)> Public szFacilities As String <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=201)> Public szllserData As String Public dwChannels As Integer Public dwReservedl As Integer Public dwReserved2 As Integer Public dwSubEntries As Integer Public dwDialMode As Integer Public dwDialExtraPercent As Integer Public dwDialExtraSampleSeconds As Integer Public dwHangUpExtraPercent As Integer Public dwHangUpExtraSampleSeconds As Integer Public dwIdleDisconnectSeconds As Integer Public dwType As Integer Public dwEncryptionType As Integer Public dwCustomAuthKey As Integer Public guidId As Guid <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public szCustomDialDll As String Public dwVpnStrategy As Integer 'Этот кусок нужен для ХР - 'буду признателен, если кто подскажет как определить ХР/неХР 'чтоб при ХР использовать эту часть ' Public dwfOptions2 As Integer ' Public dwfOptions3 As Integer ' <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=253)> Public szDnsSuffix As String ' Public dwTcpWindowsSize As Integer ' <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public szPrerequisitePbk As String ' <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public szPrerequisiteEntry As String ' Public dwRedialCount As Integer ' Public dwRedialPause As Integer End Structure 'заполнение структуры и Получение данных по клику Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim PhoneBookEntryToGet As String = TextBox1.Text Dim res As Integer Dim re As RASENTRY Dim bufsize As Integer re.dwSize = Marshal.SizeOf(re) bufsize = re.dwSize res = RasGetEntryProperties(Nothing, PhoneBookEntryToGet, re, bufsize, 0, 0) End Sub 'теперь элементы структуры содержат всю необходимую нам информацию 'например номер телефона получить можно так Label12.Text = re.szLocalPhoneNumber 'также можно используя RasSetEntryProperties создать/отредактировать нужное соединение 'записав в параметры структуры нужные данные. '(На самом деле там тоже есть нюансы, которые я сам ещё не понял, но будут вопросы - пишите в форум.) |
Ответы | Всего ответов: 7 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 16.10.05 19:54 |
Что-то мне подсказывает, что этот вопрос надо поместить в форум ".NET", а то я уже кинулся объяснять, как отличить XP от не-XP ![]() |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 247906854 Вопросов: 133 Ответов: 882 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 17.10.05 01:11 |
По поводу xp/не xp:
Наверняка это можно задать просто размером структуры. Т.е. смотришь размер при полузакомментированной структуре (чисто глазками и чисто ручками записываем на чисто бумажке), потом записываешь размер полной структуры. И в коде забиваешь: If IsXP Then
re.dwSize = constXPSIZE Else re.dwSize = constNOTXPSIZE End If Почти наверняка должно проканать... |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 247906854 Вопросов: 133 Ответов: 882 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 17.10.05 01:16 |
Кстати, по поводу сертификатов - ты пробовал сначала вытащить какою-нить существующую энтрю, потом изменить в ней тока некотрые данные и добавить как новую? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 122 Ответов: 257 |
Профиль | Цитата | #4 | Добавлено: 17.10.05 22:20 |
2Neco, - твоё решение Хр-неХр мне приходило в голову, оно лобовое, но всё равно спасибо.
А чё то сегодня этих запросов по сертификату небыло. Мистификация какая то.!!! У меня подозрения, что размеры элементов структуры не все правильны. А дело вот в чём. Считываю параметры имеющегося соединения, а потом функцией СЕТ создаю с новым именем своё. И тут подстава с параметром dwFramingProtocol: в параметре dwFramingProtocol - была 1 а для нового соединения попадает 4 !!!!! /этот параметр отвечает за протокол передачи/ /птичка на ТСП/ Дык вот я беру и нахалом туда пишу 4 и что вы думаете я получаю - 1 Вопрос: Чё за бред такой ? типа байты в этот параметр наизнанку записываются 0001=1 0100=4 Может кто сталкивался ? И ещё проблема со следующим параметром dwfOptions - он стоит первым после Сайза в структуре так вот у оригинального соединения было 1 032 651 544 что в двоичке: 111101100011010000001100011000 а у нового 1 033 700 120 что в двоичке: 111101100111010000001100011000 разница в десятом слева бите !!!! мне то в данный момент побарабану, но может позже прийдётся вникать, поэтому хотелось бы понять какова природа этого явления. Всем спасибо |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() Разработчик Offline Client ICQ: 204034 Вопросов: 106 Ответов: 1919 |
Профиль | Цитата | #5 | Добавлено: 31.10.05 12:24 |
If IsXP Then re.dwSize = constXPSIZE Else re.dwSize = constNOTXPSIZE End If Хм... Я в исходниках одной программы видел определение оси через пространства типа Enviroment. Могу ошибаться - сейчас исходников нету.. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 26 Ответов: 325 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 31.10.05 13:07 |
ХМ
Console.WriteLine("OS: {0}", Environment.OSVersion.ToString()) |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 247906854 Вопросов: 133 Ответов: 882 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 31.10.05 21:35 |
не об том речь, пацаны. 8) |
Страница: 1 |
|