Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Новое соединение и вдруг какой то сертификат Добавлено: 16.10.05 18:38  

Автор вопроса:  student-uni
Создаю совей прогой новое удалённое соединение.
Рабочий пример см внизу.

проблема:
На моём домашнем компе созданное удалённое соединение работает
На компе заказчика - не работает - говорит проблема с сертификатом.

Вопрос: как решить эту проблему ?

Я так понимаю
дело в некоей проверке сертификатов

у меня дома вин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
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 16.10.05 19:54
Что-то мне подсказывает, что этот вопрос надо поместить в форум ".NET", а то я уже кинулся объяснять, как отличить XP от не-XP ;)

Ответить

Номер ответа: 2
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #2
Добавлено: 17.10.05 01:11
По поводу xp/не xp:
Наверняка это можно задать просто размером структуры. Т.е. смотришь размер при полузакомментированной структуре (чисто глазками и чисто ручками записываем на чисто бумажке), потом записываешь размер полной структуры.
И в коде забиваешь:
If IsXP Then
   re.dwSize = constXPSIZE
Else
   re.dwSize = constNOTXPSIZE
End If

Почти наверняка должно проканать...

Ответить

Номер ответа: 3
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #3
Добавлено: 17.10.05 01:16
Кстати, по поводу сертификатов - ты пробовал сначала вытащить какою-нить существующую энтрю, потом изменить в ней тока некотрые данные и добавить как новую?

Ответить

Номер ответа: 4
Автор ответа:
 student-uni



Вопросов: 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
Автор ответа:
 ⊗WaX⊗



Вопросов: 26
Ответов: 325
 Web-сайт: sapfir.cift.ru
 Профиль | | #6
Добавлено: 31.10.05 13:07
ХМ


Console.WriteLine("OS: {0}", Environment.OSVersion.ToString())

Ответить

Номер ответа: 7
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #7
Добавлено: 31.10.05 21:35
не об том речь, пацаны. 8)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам