Pagina 1 van 1
EID-lezer gebruiken in VB.NET omgeving
Geplaatst: 15 dec 2006, 15:37
door Kristof75
Hoi allemaal,
heeft iemand al ervaring met het gebruik van een EIDlezer bij een VB.NET-programma?
Ik zou een login willen maken waarbij je de mogelijkheid krijgt om via een button een controle op ID uit te voeren en je zo al dan niet toegang te laten geven voor de applicatie.
Kan iemand hiermee helpen?
Hoe kan ik gegevens in VB.NET uitlezen?
mvg
Kristof
Geplaatst: 15 dec 2006, 15:46
door meon
Ze0n heeft me ooit iets laten testen dat ie gemaakt had, las alle velden uit van m'n eID en was in .net geschreven. Dus wellicht dat hij je tips kan aanreiken.
EID .NET
Geplaatst: 15 dec 2006, 18:37
door redman
Dit is heel gemakkelijk als je een beetje ervaring hebt met .NET.
Microsoft gaat dit hevig ondersteunen en heeft daarvoor gezord dat de programmatie zo simpel mogelijk is.
Bekijk de documenten op de volgende pagina eens:
http://www.microsoft.com/belux/nl/eid/
Geplaatst: 16 dec 2006, 12:34
door Sensei Zeon
Ik heb een tijdje geleden, zoals meon al zei, ook een inlog programma adhv de E-ID geschreven, wat ik gedaan heb is:
De drivers van de E-ID reader installeren. En ook de Runtime (Belgian_Identity_Card_Run-time_EN_2313 heb ik geinstalleerd)
In je VB form moet je dan het object EIDlib1 toevoegen aan je form.
Een bugje dat ik nog wel gevonden heb is als ik 2x snel na elkaar een E-id inlees hij soms de vorige laat staan, maar dat kan aan een ander deel van mijn programma liggen
.
De code die ik gebruikt heb is deze, als je verbeteringen toebrengt, zou ik ze ook wel willen eten als het kan
:
(Disclaimer: het is heel quick 'n dirty gemaakt, dus error handling enzo heeft nog veel verbetering nodig!)
Code: Selecteer alles
Private Sub btnReadEid_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadEid.Click
Dim lHandle As Integer
'BEID_ Kaart Info
Dim strCardNumber As String
Dim strChipNumber As String
Dim strBegValDag, strBegVal, strBegValMaand As Object
Dim strBegValJaar As String
Dim strEndValDag, strEndVal, strEndValMaand As Object
Dim strEndValJaar As String
Dim strIssuingMunicipality As String
'BEID Persoons Info
Dim strName As String
Dim strFirstName1 As String
Dim strBirthPlace As String
Dim strBirthDate As String
Dim strGender As String
Dim strNationality As String
Dim strNationalNumber As String
'BEID Adres Info
Dim strStreet As String
Dim strZIPCode As String
Dim strMunicipality As String
Dim RetStatus As EIDLIBCTRLLib.RetStatus
Dim MapColPicture As New EIDLIBCTRLLib.MapCollection
Dim MapColID As New EIDLIBCTRLLib.MapCollection
Dim MapColAddress As New EIDLIBCTRLLib.MapCollection
Dim CertifCheck As New EIDLIBCTRLLib.CertifCheck
'voor de img
Dim bytes() As Byte
'Dim ms As System.IO.MemoryStream()
Try
RetStatus = EIDlib1.Init("", 0, 0, lHandle)
If (RetStatus.GetGeneral = 0) Then
RetStatus = EIDlib1.GetID(MapColID, CertifCheck)
strChipNumber = MapColID.GetValue("ChipNumber").ToString
strCardNumber = MapColID.GetValue("CardNumber").ToString
strBegVal = MapColID.GetValue("BeginValidityDate")
strEndVal = MapColID.GetValue("EndValidityDate")
strIssuingMunicipality = MapColID.GetValue("IssuingMunicipality").ToString
strName = MapColID.GetValue("Name").ToString
strFirstName1 = MapColID.GetValue("FirstName1").ToString
strBirthDate = MapColID.GetValue("BirthDate").ToString
strBirthPlace = MapColID.GetValue("BirthPlace").ToString
strGender = MapColID.GetValue("Gender").ToString
strNationality = MapColID.GetValue("Nationality").ToString
strNationalNumber = MapColID.GetValue("NationalNumber").ToString
'Opsplitsen begindatum
strBegValDag = VB.Right(strBegVal.ToString, 2)
strBegValMaand = Mid(strBegVal.ToString, 5, 2)
strBegValJaar = VB.Left(strBegVal.ToString, 4)
'Opsplitsen einddatum
strEndValDag = VB.Right(strEndVal.ToString, 2)
strEndValMaand = Mid(strEndVal.ToString, 5, 2)
strEndValJaar = VB.Left(strEndVal.ToString, 4)
End If
RetStatus = EIDlib1.GetAddress(MapColAddress, CertifCheck)
strStreet = MapColAddress.GetValue("Street").ToString
strZIPCode = MapColAddress.GetValue("ZIPCode").ToString
strMunicipality = MapColAddress.GetValue("Municipality").ToString
lblName.Text = strName
lblFirstName.Text = strFirstName1
lblBirthplace.Text = strBirthPlace
lblBirthDate.Text = strBirthDate
lblGender.Text = strGender
lblNat.Text = strNationality
lblNatNr.Text = strNationalNumber
lblStreet.Text = strStreet
lblPostCode.Text = strZIPCode
lblGemeente.Text = strMunicipality
lblLand.Text = "België"
lblChipNr.Text = strChipNumber
lblCardNr.Text = strCardNumber
lblBegVal.Text = strBegVal.ToString
lblEndVal.Text = strEndVal.ToString
lblUitreikGemeente.Text = strIssuingMunicipality
RetStatus = EIDlib1.GetPicture(MapColPicture, CertifCheck)
bytes = DirectCast(MapColPicture.GetValue("Picture"), Byte())
'ms = DirectCast(bytes, System.IO.MemoryStream)
Dim ms As New System.IO.MemoryStream(bytes)
PbFoto.Image = System.Drawing.Image.FromStream(ms)
deelnemer = New EidData(strCardNumber, strChipNumber, strBegValDag, strBegVal, strBegValMaand, strBegValJaar, strEndValDag, strEndVal, strEndValMaand, strEndValJaar, strIssuingMunicipality, strName, strFirstName1, strBirthPlace, strBirthDate, strGender, strNationality, strNationalNumber, strStreet, strZIPCode, strMunicipality, bytes)
kaartGelezen = 1
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Geplaatst: 16 dec 2006, 20:49
door Kristof75
Ok alvast bedankt,
Ik ga dit eens uitproberen in mijn programma en zal jullie op de hoogte houden.
Geplaatst: 18 dec 2006, 18:22
door Kartouch
Bij het testen zal je wellicht opvallen dat:
de eerste en tweede voornaam samen zitten in het veld FirstName1
en dat de straat, huisnummer, busnummer, deelgemeente samen zitten in het straatveld.
Ook de country-code is niet ingevuld.
Ik heb zelf een algoritme geschreven om de adresvelden mooi op te delen want ik heb nog geen enkele kaart gelezen die wel goed zit.
Mijn ontwikkelingen zijn echter wel in java.
probleemje
Geplaatst: 21 dec 2006, 23:49
door Kristof75
hoi allemaal,
Ik krijg het voorlopig nog niet aan de praat....
Mijn probleem zit bij de EIDlib1
Deze blijft onbekend voor het apparaat.
Heeft dit te maken met een certificaat ofzo?
Kan iemand mij een tip geven om dit aan te pakken
Groeten
Kristof
Meer info foutmelding
Geplaatst: 22 dec 2006, 09:08
door Kristof75
Name 'EIDlib1' is not declared. Ik had ook geprobeerd om een dll toe te voegen zoals hieronder maar dat helpt niet.
Iemand ervaring met deze EIDlib1?
Heeft het te maken met de certificaten?
Ik had ook problemen met EIDLIBCTRLLib maar dat was omdat ik een referentie moet toevoegen (EIDLIBCTRLLib.dll) Dit is ondertussen opgelost
Geplaatst: 22 dec 2006, 09:41
door khsw
Je hebt gewoon een referentie toegevoegd aan je project, maar EIDlib1 is niet gedeclareerd, in de code van SeNsEi Ze0n is dit een control.
Je rechterklikt op je toolbox (je voegt eventueel een nieuwe tab toe) en je klikt op "Choose Items...". Selecteer de tweede tab "COM Components", wacht even, en vink daar "EIDlib Class" aan. Klik op OK om deze dialog te sluiten.
Nu heb je links in de toolbox een nieuwe control "EIDlib Class" staan. Sleep deze op jouw form en bovenstaande code zal werken.
Je kan ook, als je de control niet nodig hebt, zelf een declaratie toevoegen
Geplaatst: 30 jan 2007, 21:04
door Mr. Jibe
Merci voor de tip, ik heb dit onmiddellijk eens geprobeerd en ziet er goed uit. Iemand er al in geslaagd om dit vanuit een webpagina te doen?
grt,
Lieven
Geplaatst: 16 feb 2007, 08:49
door kvanbell
Ik ben ook bezig met testen met de E-ID in .net.
De onderstaande code werk maar blijkbaar heb je geen mensen tegengekomen die een Franse naam hebben zoals François.
Indien je dit doet zal je opmerken dat er nog een probleempje is met de code. De string is utf8 en moet eerst omgezet worden naar unicode.
Ik zoek er nu al enkele uren naar maar ik krijg nog steeds niet de juiste characters. Dus ik heb François .
Is er iemand die weet hoe hij dit moet oplossen?
Geplaatst: 16 feb 2007, 08:58
door meon
kvanbell schreef:De string is utf8 en moet eerst omgezet worden naar unicode.
... is utf-8 niet unicode? Dacht het wel
Geplaatst: 16 feb 2007, 08:59
door kvanbell
UTF8 herkent niet alle characters
Geplaatst: 16 feb 2007, 09:25
door meon
kvanbell schreef:UTF8 herkent niet alle characters
Volgens mij is UTF-8 net een van de meest uitgebreide, algemeen gebruikte codepages
Geplaatst: 16 feb 2007, 10:00
door kvanbell
Zal mij misschien een beetje beter uitdrukken.
Als je en UTF8 string wilt laten weergeven, die je binnenhaalt uit de ID worden de speciale tekens zoals ç weergegeven als ç. UTF8 kent het karakter wel maar slaat het op in 2bytes en niet in 1. Zodoende is het moeilijker om die te kunnen weergeven op het scherm.
Mijn vraag is hoe
Geplaatst: 16 feb 2007, 10:51
door Astralon
Al naar documentatie van
UTF8Encoding class gekeken?
Geplaatst: 16 feb 2007, 11:50
door meon
kvanbell schreef:UTF8 kent het karakter wel maar slaat het op in 2bytes en niet in 1. Zodoende is het moeilijker om die te kunnen weergeven op het scherm.
Is dat net niet de reden waarom UTF-8 unicode is en niet ASCII?
Enfin, uw output on-screen ook UTF-8 laten uitspuwen is geen optie?
Geplaatst: 16 feb 2007, 13:25
door ubremoved_539
Misschien hier eens lezen...
http://www.yoda.arachsys.com/csharp/unicode.html
In C# kan je alvast gewoon Unicode outputten...
... geeft een grote A met een bolletje eronder.
Misschien beter meteen in een taal programmeren die Unicode support heeft zoals C# of Java.
Geplaatst: 16 feb 2007, 19:54
door Sensei Zeon
c# is gewoon .net, dus c# == vb.net alleen andere woorden
Geplaatst: 17 feb 2007, 10:54
door wem
SeNsEi Ze0n schreef:c# is gewoon .net, dus c# == vb.net alleen andere woorden
Heeft C# niet meer mogelijkheden dan vb.net? Ik kan me niet herinneren dat er met pointers geknoeid kan worden in vb.net (maar ben dan ook geen vb specialist
)
Het is niet omdat ze naar dezelfde runtime language vertaald worden, dat ze dezelfde mogelijkheden hebben.
Geplaatst: 17 feb 2007, 12:22
door Astralon
Ik volg de redenering van Sensei. Zowel C# als VB.NET ondersteunen de CLS (Common Language Specification). M.a.w. de functionaliteit wordt bepaald door de CLS en niet door de programmeertaal.
Geplaatst: 17 feb 2007, 13:46
door wem
Astralon schreef:Ik volg de redenering van Sensei. Zowel C# als VB.NET ondersteunen de CLS (Common Language Specification). M.a.w. de functionaliteit wordt bepaald door de CLS en niet door de programmeertaal.
Maar het is toch niet omdat CLS feature A toelaat, dat ook VB.net toelaat om feature A te gebruiken?
Geplaatst: 17 feb 2007, 18:54
door ubremoved_539
wem schreef:Maar het is toch niet omdat CLS feature A toelaat, dat ook VB.net toelaat om feature A te gebruiken?
Inderdaad... het is niet omdat alle software op Intel x86 architectuur werkt dat het ook allemaal hetzelfde kan.
Geplaatst: 01 mei 2007, 06:21
door teleweb
wem schreef:Heeft C# niet meer mogelijkheden dan vb.net?
Nee hoor, als programmeur werk ik courant met beide programmeertalen en ik heb ooit eens een mooi vergelijkend lijstje gemaakt van de C# <-> VB.NET language features, en helaas, C# kwam er als verliezer uit...
Objectief gezien heeft VB.NET dus MEER mogelijkheden dan C#. In de praktijk hangt het natuurlijk van de soort applicatie die je wil ontwikkelen af welke taal de beste keuze is. Ze hebben elk namelijk ANDERE features.
Met elke nieuwe versie van .NET krijgen de talen ook meer en meer features van elkaar (denk bvb. aan anonymous methods).
conversieproblemen
Geplaatst: 01 jun 2007, 16:27
door ayla
hey;
ik heb ook een programmaatje geschreven in vb.net om de gegevens van een eid kaart te lezen. Dit lukt maar ik heb zoals anderen hier problemen met de conversie van speciale karakters.
bijvoorbeeld valère leest hij als Valère . Ik heb hier gelezen waar dit aan ligt maar kan geen oplossing vinden om het om te zetten naar valère.
ik heb hetvolgende al geprobeerd:
...
TextName.Text = ConvertUTF8(MapColID.GetValue("Name"))
...
Function ConvertUTF8(ByRef UTF8text As String) As String
Dim b As Byte()
b = System.Text.Encoding.UTF8.GetBytes(UTF8text)
Dim c As Byte()
c = System.Text.Encoding.Convert(System.Text.Encoding.UTF8, System.Text.Encoding.Unicode, b)
ConvertUTF8 = System.Text.Encoding.Unicode.GetString(c)
End Function
maar zonder succes...
kan iemand me hier met helpen aub?
dank bij voorbaat
groetjes
ayla
Geplaatst: 03 jun 2007, 13:48
door ubremoved_539
teleweb schreef:Objectief gezien heeft VB.NET dus MEER mogelijkheden dan C#.
Ik denk dat er iets grondig fout is met je objectiviteit.
eid probleem
Geplaatst: 08 jun 2007, 15:37
door ayla
hey;
Ik denk dat het probleem ligt bij de omzetting van de utf8(unicode) naar unicode in .net( wat standaard utf16 is).
Heeft er iemand een idee hoe ik die complexe karakters (in 2 bytes opgeslagen) zoals è kan tonen als è en niet als die rare chars?
Ik heb het geprobeerd volgens mijn bovenstaande post zonder succes.
groetjes
ps: het zou leuk zijn om de topic te proberen oplossen, een discussie rond het verschil tussen vb en c# helpt daarbij niet echt
Geplaatst: 17 sep 2008, 02:01
door Blackstar
Het is een beetje na datum maar heeft er ook iemand mss al eens bekeken of dit ook werkt met Access 2007 VBA ?
Ben altijd geinteresseerd.
D
Geplaatst: 17 sep 2008, 08:37
door ubremoved_539
Blackstar schreef:Het is een beetje na datum maar heeft er ook iemand mss al eens bekeken of dit ook werkt met Access 2007 VBA ?
Je kan DLL's aanroepen in VBA, dus in princiepe moet dat eveneens lukken, desnoods schrijf je een volledige wrapper rond het eID gebeuren voor gebruik in MS Access.
Re: eid probleem
Geplaatst: 17 sep 2008, 08:50
door Sensei Zeon
ayla schreef:hey;
Ik denk dat het probleem ligt bij de omzetting van de utf8(unicode) naar unicode in .net( wat standaard utf16 is).
Heeft er iemand een idee hoe ik die complexe karakters (in 2 bytes opgeslagen) zoals è kan tonen als è en niet als die rare chars?
Ik heb het geprobeerd volgens mijn bovenstaande post zonder succes.
groetjes
ps: het zou leuk zijn om de topic te proberen oplossen, een discussie rond het verschil tussen vb en c# helpt daarbij niet echt
Ik ben dit helemaal uit het oog verloren, ik heb hier al een klein jaar een oplossing voor gevonden. De fout is dat .net er van uit gaat dat de strings die je uit de C API van de eID Middleware krijgt, in je default Charachter encoding staat. De oplossing is dus om het te forceren naar UTF-8. Zo die je het in C#: (VB.net is praktisch hetzelfde, het komt er eigenlijk op neer om dim te zetten voor de eerste regel en de ; weg te laten
)
Code: Selecteer alles
private String fixChars(String input)
{
byte[] byInput;
byInput = System.Text.Encoding.Default.GetBytes(input);
input = System.Text.Encoding.UTF8.GetString(byInput);
return input;
}
Re: EID-lezer gebruiken in VB.NET omgeving
Geplaatst: 25 nov 2009, 13:23
door Kelly
hoihoi
ik ben nogal een leek met VB
maar had een vriend van me beloofd iets te verbeteren aan zijn klantenbestand
vroeger werkte hij met een gewone excel-lijst
nu heb ik al in access 2002 een iets makkelijkere manier gemaakt om alles te beheren, maar kwam hij naar me toe met de vraag of het niet mogelijk is om rechtreeks van een e-id de info af te halen...
ik heb me al suf gezocht maar niets werkt...
is er iemand die een noob wat op weg kan helpen?
Re: EID-lezer gebruiken in VB.NET omgeving
Geplaatst: 25 nov 2009, 13:32
door ubremoved_539
Kelly schreef:ik heb me al suf gezocht maar niets werkt...
is er iemand die een noob wat op weg kan helpen?
Lees deze thread zou ik zeggen... alles staat er in essentie in.
Re: EID-lezer gebruiken in VB.NET omgeving
Geplaatst: 25 nov 2009, 13:35
door Kelly
r2504 schreef:Kelly schreef:ik heb me al suf gezocht maar niets werkt...
is er iemand die een noob wat op weg kan helpen?
Lees deze thread zou ik zeggen... alles staat er in essentie in.
en vb.net en vb6 zijn hetzelfde?
Re: EID-lezer gebruiken in VB.NET omgeving
Geplaatst: 25 nov 2009, 21:28
door ubremoved_539
Kelly schreef:en vb.net en vb6 zijn hetzelfde?
Niet echt, maar uiteindelijk kun je in Visual Basic 6 ook gewoon DLL's aanroepen (en de code van Sensei Zeon op de eerste pagina zal trouwens niet echt veel verschillen in VB6).
Re: EID-lezer gebruiken in VB.NET omgeving
Geplaatst: 26 nov 2009, 20:39
door Kelly
mmh
ben er niet veel wijzer uit geworden, jammer
Re: EID-lezer gebruiken in VB.NET omgeving
Geplaatst: 27 nov 2009, 09:27
door ubremoved_539
Kelly schreef:mmh
ben er niet veel wijzer uit geworden, jammer
Laat dan eens zien welke code je al geschreven hebt... en wat er niet werkt.
Re: EID-lezer gebruiken in VB.NET omgeving
Geplaatst: 27 nov 2009, 17:56
door Kelly
hoppa, ik heb iets dat werkt
heb een van de samples genomen die bij de download zitten van de overheids-site
en dan wat aangepast zodat ik ook de foto heb!
*glundert van trots*
nu nog gelezen dat in tabel weggeschreven krijgen...
*moed zakt me weer in de schoenen*