2015-06-15 5 views
0

Мы пытаемся создать приложение для наших пользователей BYOD, чтобы они могли легко подключаться к нашей сети 802.1x.VB.Net - wlanapi.dll WlanSetProfileEapXmlUserData

Я нашел следующий код в сети:

Imports System.Runtime.InteropServices 


Module Module1 

    Private _stringToHex As Object 

    Private Property Ret As UInteger 

    Private Property StringToHex(profileName As String) As Object 
     Get 
      Return _stringToHex 
     End Get 
     Set(value As Object) 
      _stringToHex = value 
     End Set 
    End Property 

    Private Property handle As IntPtr 

    Private Property Guid As Guid 

    <DllImport("Wlanapi", EntryPoint:="WlanSetProfileEapXmlUserData")> _ 
    Public Function WlanSetProfileEapXmlUserData(<[In]()> ByVal hClientHandle As IntPtr, _ 
                 <[In](), MarshalAs(UnmanagedType.LPStruct)> ByVal interfaceGuid As Guid, _ 
                 <[In](), MarshalAs(UnmanagedType.LPWStr)> ByVal strProfileName As String, _ 
                 <[In]()> ByVal flags As ULong, _ 
                 <[In](), MarshalAs(UnmanagedType.LPWStr)> ByVal profileXml As String, _ 
                 <[In]()> ByVal pReserved As IntPtr) As UInteger 
    End Function 


    Sub Main() 


     Dim profileName As String = "ISL" 

     Dim AuthXml As String = String.Format("<?xml version=""1.0"" ?>" & _ 
                "<EapHostUserCredentials xmlns=""http://www.microsoft.com/provisioning/EapHostUserCredentials"" xmlns:eapCommon=""http://www.microsoft.com/provisioning/EapCommon"" xmlns:baseEap=""http://www.microsoft.com/provisioning/BaseEapMethodUserCredentials"">" & _ 
                 "<EapMethod>" & _ 
                  "<eapCommon:Type>25</eapCommon:Type>" & _ 
                  "<eapCommon:AuthorId>0</eapCommon:AuthorId>" & _ 
                 "</EapMethod>" & _ 
                 "<Credentials xmlns:eapUser=""http://www.microsoft.com/provisioning/EapUserPropertiesV1"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:baseEap=""http://www.microsoft.com/provisioning/BaseEapUserPropertiesV1"" xmlns:MsPeap=""http://www.microsoft.com/provisioning/MsPeapUserPropertiesV1"" xmlns:MsChapV2=""http://www.microsoft.com/provisioning/MsChapV2UserPropertiesV1"">" & _ 
                  "<baseEap:Eap>" & _ 
                   "<baseEap:Type>25</baseEap:Type>" & _ 
                   "<MsPeap:EapType>" & _ 
                    "<MsPeap:RoutingIdentity>username</MsPeap:RoutingIdentity>" & _ 
                    "<baseEap:Eap>" & _ 
                     "<baseEap:Type>26</baseEap:Type>" & _ 
                      "<MsChapV2:EapType>" & _ 
                       "<MsChapV2:Username>USERNAME</MsChapV2:Username>" & _ 
                       "<MsChapV2:Password>PASSWORD</MsChapV2:Password>" & _ 
                       "<MsChapV2:LogonDomain>DOMAIN</MsChapV2:LogonDomain>" & _ 
                      "</MsChapV2:EapType>" & _ 
                     "</baseEap:Eap>" & _ 
                   "</MsPeap:EapType>" & _ 
                  "</baseEap:Eap>" & _ 
                 "</Credentials>" & _ 
                "</EapHostUserCredentials>", profileName, StringToHex(profileName)) 

     Ret = WlanSetProfileEapXmlUserData(handle, Guid, profileName, Convert.ToUInt64(&H1), AuthXml, IntPtr.Zero) 
    End Sub 




End Module 

Это дает мне следующее сообщение об ошибке: «Дополнительная информация:„! Test_wlan_conf test_wlan_conf.Module1 :: WlanSetProfileEapXmlUserData“Призыв к PInvoke функции имеет несимметричный Это связано с тем, что управляемая подпись PInvoke не соответствует неуправляемой сигнатуре цели. Убедитесь, что соглашение о вызове и параметры сигнатуры PInvoke соответствуют целевой неуправляемой сигнатуре ».

С моими почти несуществующими навыками .net, я признаю, что было бы очень трудно решить. Любая помощь будет глубоко оценена!

ответ

0

Решил сам, используя AutoIT UDF со своих форумов. UDF называет wlanapi.dll и позволяет использовать ее функцию для настройки беспроводной сети доступа, профилей и т.д.

Шагов для Windows 7 являются:

  1. создать ех из AutoIt UDF, изменить, чтобы иметь возможность передать CLI арг (имя пользователя/пароль)
  2. импорта ранее созданный профиль с помощью Netsh
  3. добавить PEAP кредитки с помощью ранее созданного ехе
  4. Done

Шагов для Windows 8 являются:

  1. создать ех из AutoIt UDF, изменить, чтобы иметь возможность передавать CLI арг (имя пользователя/пароль)
  2. импортом ранее созданный профиль с помощью NETSH
  3. добавить PEAP кредитки с помощью ранее созданного ехе
  4. использовать Netsh для подключения к беспроводной сети (W8 не автоматическое подключение ...)
  5. Совершено

Надеюсь, это поможет

+0

Спасибо, любой шанс, что вы можете поделиться этим фрагментом кода AutoIT – Prolasis

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

  • Нет связанных вопросов^_^