hanest Skrevet 25. juli 2004 Del Skrevet 25. juli 2004 Dette skal bli en greie der du kan lagre opplysninger i en kryptert XML fil. 'På toppen Imports System.Xml 'Litt xml og VB.Net 'Jeg har ikke brukt Textwriter, Dataset, Binding eller Datatabeller fordi 'jeg vil bruke xPath til dette. ' 'Prosedyrene for Lasting og Lagring er der fordi xml filen skal krypterest. 'Det er jo ingen vits å ha en fil som lagrer passord ligge åpen. ' 'Det er ikkje tatt med kode for å lage XML filen vist den ikke eksisterer. 'Filen heter brukere.xml og ligger i samme mappe som exe filen til programmet ' 'Kontroller: 'Windowsform 1 ' frmLagPassord 'Tekstbokser 4 ' txtFornavn, txtEtternavn, txtBrukernavn og txtPassord 'Button 2 ' btnLoggInn og btnNyBruker ' 'XMl filen ser slik ut ' '<?xml version="1.0"?> '<brukere> ' <bruker brukernavn="1585569952" passord="193409669"> ' <fornavn>Fornavn her</fornavn> ' <etternavn>Etternavn her</etternavn> ' </bruker> '</brukere> ' Dim sXmlFilnavn As String = "brukere.xml" Dim xmlDoc As XmlDocument Private Sub LastXmlDoc() xmlDoc = New XmlDocument xmlDoc.Load(sXmlFilnavn) End Sub Private Sub LagreXmlDoc() xmlDoc.Save(sXmlFilnavn) Me.Text = "OK, alt lagret." End Sub Private Sub LoggInn(ByVal sBRUKERNAVN As String, ByVal sPASSORD As String) Dim node As XmlNode = xmlDoc.SelectSingleNode( _ "/brukere/bruker[@brukernavn='" & _ sBRUKERNAVN.GetHashCode & _ "' and @passord='" & _ sPASSORD.GetHashCode & "']") Dim sFornavn As String Dim sEtternavn As String Try sFornavn = node.SelectSingleNode("fornavn").InnerText sEtternavn = node.SelectSingleNode("etternavn").InnerText Me.Text = "Velkommen " & sFornavn & " " & sEtternavn Catch NullRefEx As System.NullReferenceException Me.Text = "Feil brukernavn eller passord" End Try End Sub Private Sub NyBruker(ByVal sBrukernavn As String, ByVal sPassord As String) If SjekkOmBrukernavnEksisterer(sBrukernavn.GetHashCode) = True Then Me.Text = "Brukernavnet eksisterer, velg et annet." Else 'Nytt bruker Element med passord og brukernavn Dim nyBrukerElem As XmlElement = xmlDoc.CreateElement("bruker") nyBrukerElem.SetAttribute("brukernavn", sBrukernavn.GetHashCode) nyBrukerElem.SetAttribute("passord", sPassord.GetHashCode) 'Nytt fornavn Element Dim nyFornavnElem As XmlElement = xmlDoc.CreateElement("fornavn") nyFornavnElem.InnerText = txtFornavn.Text 'Nytt etternavn Element Dim nyEtternavnElem As XmlElement = xmlDoc.CreateElement("etternavn") nyEtternavnElem.InnerText = txtEtternavn.Text 'Legger til fornavn og etternavn i nyBrukerElem nyBrukerElem.AppendChild(nyFornavnElem) nyBrukerElem.AppendChild(nyEtternavnElem) 'Så kan vi legge til bruker Elementet i xmlDoc xmlDoc.DocumentElement.AppendChild(nyBrukerElem) 'Nå kan vi lagre LagreXmlDoc() End If End Sub Private Function SjekkOmBrukernavnEksisterer(ByVal sBRUKERNAVN As String) As Boolean Dim node As XmlNode = xmlDoc.SelectSingleNode( _ "/brukere/bruker[@brukernavn='" & sBRUKERNAVN & "']") Try If node.SelectSingleNode("@passord").InnerText <> "" Then Return True End If Catch NullRefEx As System.NullReferenceException Return False End Try End Function Private Sub frmLagPassord_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load Try LastXmlDoc() Catch ex As Exception 'Finner ikke XML-filen, avslutter. Application.Exit() End Try Me.Text = "Logg deg inn" End Sub Private Sub btnLoggInn_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles btnLoggInn.Click LoggInn(txtBrukernavn.Text, txtPassord.Text) End Sub Private Sub btnNyBruker_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles btnNyBruker.Click If txtFornavn.TextLength AndAlso txtEtternavn.TextLength AndAlso _ txtBrukernavn.TextLength AndAlso txtPassord.TextLength Then Me.Text = "Takk. Behandler..." NyBruker(txtBrukernavn.Text, txtPassord.Text) Else Me.Text = "Alt må fyllest ut." End If End Sub Dete var det for no. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå