Multidesk.be » Forums » Programmeren algemeen » Console.WriteLine <> ListBox1.Items.Add

  • Pagina
  • 1 van 1
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door joke op dinsdag 18 oktober 2016 om 19:32:44.
joke's avatar
Multiviteit: 2669
Morgen wordt het beter.
Waarom is de informatie die in de listbox terecht komt niet dezelfde als deze die te zien is door Console.WriteLine. Dit is de code die ik gebruik:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim myDomain As AppDomain = Thread.GetDomain()

myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
Dim myPrincipal As WindowsPrincipal = CType(Thread.CurrentPrincipal, WindowsPrincipal)
Dim gebruiker As String = myPrincipal.Identity.Name.ToString()

Dim position As Integer = gebruiker.LastIndexOf("\"c)
ListBox1.Items.Add(gebruiker.Substring(gebruiker.LastIndexOf("\"c) + 1))

Dim wbirFields As Array = [Enum].GetValues(GetType(WindowsBuiltInRole))
Dim roleName As Object
For Each roleName In wbirFields
Try
Console.WriteLine("{0} {1}.", roleName, myPrincipal.IsInRole(CType(roleName, WindowsBuiltInRole)))
ListBox1.Items.Add("{0} {1}." & roleName & myPrincipal.IsInRole(CType(roleName, WindowsBuiltInRole)))
Catch
Console.WriteLine("{0}: Could not obtain role for this RID.", roleName)
End Try
Next roleName
End Sub

Dochters, tot hun 16e zeuren ze om een paard en op hun 17e komen ze thuis met een ezel
^ Reactie #1 geschreven door thekid op woensdag 19 oktober 2016 om 07:44:14.
thekid's avatar
Multiviteit: 5273
Moderator
Voor zover ik weet ondersteunt een listbox niet uit zichzelf string interpolation. Je kan in je trycatch de nieuwe waarde in de listbox zo toe te voegen

CODE
  1. ListBox1.Items.Add( string.Format("{0} {1}", roleName, myPrincipal.IsInRole(CType(roleName, WindowsBuiltInRole))


dit zou je hetzelfde moeten geven als wat in de console uitkomt

Alternatief kan je ook een klasse maken waar je roleName & of de gebruiker deel uitmaakt van de role en dan dit object aan de listbox toevoegen, en dan DisplayMember & ValueMember van de ListBox te zetten (waardoor je dan eventueel niet later opnieuw de RoleName of de test moet herhalen)
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #2 geschreven door joke op woensdag 19 oktober 2016 om 19:02:19.
joke's avatar
Multiviteit: 2669
Morgen wordt het beter.
Thekit bedankt voor de hulp, je uitleg was helemaal correct.

Maar ik ben er niet mee geholpen. Mijn bedoeling is om met een functie te achterhalen of de uitvoerder een administrator account heeft of een standaard account en met de huidige functie kom ik dat niet te weten. Weet jij waar of hoe ik dat kan vinden?

Dochters, tot hun 16e zeuren ze om een paard en op hun 17e komen ze thuis met een ezel
^ Reactie #3 geschreven door thekid op donderdag 20 oktober 2016 om 12:48:58.
thekid's avatar
Multiviteit: 5273
Moderator
Achso, dat had ik van je eerste vraag eigenlijk niet zo verstaan, of het was me allesinds niet duidelijk :))

Ik versta ook niet waarom je een string naar een WindowsBuiltInRole omzet, heeft securityprincipal niet automatisch een methode om een string role te testen? Een beetje zoals hier terug te vinden is

MSDN IsInRole vb code
Deze tekst werd het laatst bewerkt voor 3.79 % door thekid op donderdag 20 oktober 2016 om 12:49:27.
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #4 geschreven door joke op zaterdag 29 oktober 2016 om 11:49:29.
joke's avatar
Multiviteit: 2669
Morgen wordt het beter.
Tja thekid uitleggen is niet mijn sterkste kant en een naam zonder fouten schrijven is ook al moeilijk voor mij, sorry daar voor.

Ik zoek dus een manier om te achterhalen of de actuele gebruiker een administrator is of een standaardgebruiker en daar slaag ik niet in. Kan jij mij verder helpen?

Toch al bedankt voor de reeds geboden hulp.

Dochters, tot hun 16e zeuren ze om een paard en op hun 17e komen ze thuis met een ezel
^ Reactie #5 geschreven door thekid op maandag 21 november 2016 om 12:38:53.
thekid's avatar
Multiviteit: 5273
Moderator
Hey Joke,

ja, enkel heb ik momenteel niet zoveel tijd, als je nog steeds het probleem hebt, kan ik wel eens kijken vanavond om daar iets van te maken :)
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #6 geschreven door joke op maandag 21 november 2016 om 23:48:36.
joke's avatar
Multiviteit: 2669
Morgen wordt het beter.
Hoi thekid,

Bedankt om nog te reageren. Ik had de hoop al opgegeven, al mijn zoeken heeft niks opgeleverd.
Een extra probleem bij Windows 10 is als iemand die geen administrator is een programma uitvoert "als adminitrator" en je vraagt dan de actuele user op dan krijg je de naam van de administrator alhoewel het uitgevoerd word een gebruiker die geen administrator is.

Ik wil dus dat als het program uitgevoerd wodt door Guido dat als responce komt "Administator" en als het uitgevoerd wordt door Rieke moet de responce "Lokaal account" zijn of iets in die trant natuurlijk. De responce mag niet veranderen omdat de optie "Uitvoeren als administrtor" gebruikt is.

Ik zal al blij zijn als je een oplossing vind ook al moet ik een paar dagen wachten.
Bijlage: 48d0b79cd19f177decfd4a347c6abec5.jpg

Dochters, tot hun 16e zeuren ze om een paard en op hun 17e komen ze thuis met een ezel
  • Pagina
  • 1 van 1

Snel-antwoordformulier
Toon uitgebreid antwoordformulier Bericht nalezen Bericht plaatsen