Hallo zusammen,
ich dachte mir es wird mal wieder Zeit für ein neues Tutorial. Diesmal handelt es sich jedoch nur um ein Mini-Tutorial zum Thema Administratorrechte und VB.NET.
Was lernen Sie in diesem Tutorial?
In diesem Tutorial werde ich Ihnen zeigen, wie Sie auslesen, ob Ihre Anwendung als Administrator (oder als eine andere Gruppe) ausgeführt wird oder verlangen,
dass Ihre Anwendung als Administrator ausgeführt wird.
Mir ist außerdem bewusst, dass es schon mehrere Tutorials im Internet zu diesem Thema gibt.
Was benötigen Sie?
Grundsätzlich benötigen Sie, da es sich hier um ein sehr einfaches kurzes Tutorial handelt keine wirklichen Vorkenntnisse.
Wobei Grundlagenwissen niemals schaden kann. Diesbezüglich verweise ich gerne auf folgende Literatur:
microsoft.com/germany/msdn/akt…005dasentwicklerbuch.aspx
microsoft.com/germany/msdn/akt…008dasentwicklerbuch.aspx Beziehungsweise der Sammelthread dazu:
[Allgemein] Entwickler-Ressourcen und Tools, Bücher und WebCasts
Los geht's!
Zu Beginn möchte ich Ihnen zeigen, wie Sie verlangen können, dass Ihre Applikation als Administrator ausgeführt werden muss.
Dazu öffnen Sie die
Nun können Sie in dieser Datei, die benötigten Privilegien beim Start anfordern.
Um diese Privilegien zu ändern, müssen Sie lediglich folgende Zeile umschreiben:
Nun können Sie sich zwischen folgenden Möglichkeiten entscheiden:
Nehmen wir zum Beispiel
Und dadurch wird Ihre Anwendung als Administrator ausgeführt.
Administratorrechte überprüfen
Nun möchte ich Ihnen zeigen, wie Sie ganz einfach überprüfen können, ob Ihre Anwendung als Administrator ausgeführt wird.
Dazu importieren Sie folgenden Namespace:
(beziehungsweise schalten Sie die Option:
Dies bezüglich hier eine kleine Information zu Option Strict On:
erfinderdesrades.unitweb.de/Pr…/Blogs/WarumStrictOn.html
Als nächstes erstellen Sie zwei neue Objekte. Eines vom Typ
Jetzt erstellen wr einfach eine Eigenschaft, die uns wiedergibt, ob die Anwendung als Administrator ausgeführt wird:
VB.NET
C#
Anschließend können Sie einfach mit:
Andere Privilegien überprüfen
Sie können diese Eigenschaft natürlich ganz einfach so umschreiben, dass sie eine andere Rolle (bzw. Privilegien) überprüft.
Schreiben Sie dazu einfach:
Damit können Sie zum Beispiel Funktionen sperren, falls der Benutzer nur einen Gast-Account besitzt. Beispiel:
VB.NET
C#
Das war's!
Und das war es auch schon mit diesem Mini-Tutorial.
Ich hoffe sehr, dass ich Ihnen damit weiterhelfen konnte.
Mit freundlichen Grüßen
Martin Pfeiffer (Gather)
ich dachte mir es wird mal wieder Zeit für ein neues Tutorial. Diesmal handelt es sich jedoch nur um ein Mini-Tutorial zum Thema Administratorrechte und VB.NET.
Was lernen Sie in diesem Tutorial?
In diesem Tutorial werde ich Ihnen zeigen, wie Sie auslesen, ob Ihre Anwendung als Administrator (oder als eine andere Gruppe) ausgeführt wird oder verlangen,
dass Ihre Anwendung als Administrator ausgeführt wird.
Mir ist außerdem bewusst, dass es schon mehrere Tutorials im Internet zu diesem Thema gibt.
Was benötigen Sie?
Grundsätzlich benötigen Sie, da es sich hier um ein sehr einfaches kurzes Tutorial handelt keine wirklichen Vorkenntnisse.
Wobei Grundlagenwissen niemals schaden kann. Diesbezüglich verweise ich gerne auf folgende Literatur:
microsoft.com/germany/msdn/akt…005dasentwicklerbuch.aspx
microsoft.com/germany/msdn/akt…008dasentwicklerbuch.aspx Beziehungsweise der Sammelthread dazu:
[Allgemein] Entwickler-Ressourcen und Tools, Bücher und WebCasts
Los geht's!
Zu Beginn möchte ich Ihnen zeigen, wie Sie verlangen können, dass Ihre Applikation als Administrator ausgeführt werden muss.
Dazu öffnen Sie die
app.manifest
Datei Ihres Projektes. Die app.manifest Datei finden Sie wenn Sie auf My Project > Anwendung > Windows-Einstellungen anzeigen klicken.Nun können Sie in dieser Datei, die benötigten Privilegien beim Start anfordern.
Um diese Privilegien zu ändern, müssen Sie lediglich folgende Zeile umschreiben:
Nun können Sie sich zwischen folgenden Möglichkeiten entscheiden:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Hiermit verlangt die Anwendung, dass sie als Administrator ausgeführt wird.<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
Hier verlangt die Anwendung, dass sie mit den höchsten möglichen Rechten ausgeführt wird.Nehmen wir zum Beispiel
level="requireAdministrator"
. Wenn Sie Ihre Anwendung nun erstellen, öffnet sich der UAC-Dialog:Und dadurch wird Ihre Anwendung als Administrator ausgeführt.
Administratorrechte überprüfen
Nun möchte ich Ihnen zeigen, wie Sie ganz einfach überprüfen können, ob Ihre Anwendung als Administrator ausgeführt wird.
Dazu importieren Sie folgenden Namespace:
Imports System.Security, System.Security.Principal
(beziehungsweise schalten Sie die Option:
Option Strict On
auf True
.)Dies bezüglich hier eine kleine Information zu Option Strict On:
erfinderdesrades.unitweb.de/Pr…/Blogs/WarumStrictOn.html
Als nächstes erstellen Sie zwei neue Objekte. Eines vom Typ
WindowsIdentity
und eines vom Typ WindowsPrincipal
.Jetzt erstellen wr einfach eine Eigenschaft, die uns wiedergibt, ob die Anwendung als Administrator ausgeführt wird:
VB.NET-Quellcode
- ''' <summary>
- ''' Überprüft, ob die Anwendung als Administrator ausgeführt wird.
- ''' </summary>
- <Browsable(True)>
- <Description("Überprüft, ob die Anwendung als Administrator ausgeführt wird.")>
- Public ReadOnly Property IsAdmin As Boolean
- Get
- wiIdentity = WindowsIdentity.GetCurrent 'Hohlt sich die aktuelle WindowsIdentität.
- wpPrincipal = New WindowsPrincipal(wiIdentity) 'Hohlt sich die Privilegien dieser Identität.
- Return wpPrincipal.IsInRole(WindowsBuiltInRole.Administrator)
- End Get
- End Property
C-Quellcode
- /// <summary>
- /// Überprüft, ob die Anwendung als Administrator ausgeführt wird.
- /// </summary>
- [Browsable(true)]
- [Description("Überprüft, ob die Anwendung als Administrator ausgeführt wird.")]
- public bool IsAdmin {
- get {
- wiIdentity = WindowsIdentity.GetCurrent;
- //Hohlt sich die aktuelle WindowsIdentität.
- wpPrincipal = new WindowsPrincipal(wiIdentity);
- //Hohlt sich die Privilegien dieser Identität.
- return (wpPrincipal.IsInRole(WindowsBuiltInRole.Administrator))
- }
- }
Anschließend können Sie einfach mit:
If IsAdmin Then
überprüfen ob die Applikation als Administrator gestartet worden ist.Andere Privilegien überprüfen
Sie können diese Eigenschaft natürlich ganz einfach so umschreiben, dass sie eine andere Rolle (bzw. Privilegien) überprüft.
Schreiben Sie dazu einfach:
wpPrincipal.IsInRole(WindowsBuiltInRole.Administrator)
um.Damit können Sie zum Beispiel Funktionen sperren, falls der Benutzer nur einen Gast-Account besitzt. Beispiel:
VB.NET-Quellcode
- ''' <summary>
- ''' Überprüft, ob die Anwendung von einem Gast ausgeführt wird.
- ''' </summary>
- <Browsable(True)>
- <Description("Überprüft, ob die Anwendung von einem Gast ausgeführt wird.")>
- Public ReadOnly Property IsGuest As Boolean
- Get
- wiIdentity = WindowsIdentity.GetCurrent 'Hohlt sich die aktuelle WindowsIdentität.
- wpPrincipal = New WindowsPrincipal(wiIdentity) 'Hohlt sich die Privilegien dieser Identität.
- Return wpPrincipal.IsInRole(WindowsBuiltInRole.Guest)
- End Get
- End Property
C-Quellcode
- /// <summary>
- /// Überprüft, ob die Anwendung von einem Gast ausgeführt wird.
- /// </summary>
- [Browsable(true)]
- [Description("Überprüft, ob die Anwendung von einem Gast ausgeführt wird.")]
- public bool IsGuest {
- get {
- wiIdentity = WindowsIdentity.GetCurrent;
- //Hohlt sich die aktuelle WindowsIdentität.
- wpPrincipal = new WindowsPrincipal(wiIdentity);
- //Hohlt sich die Privilegien dieser Identität.
- return (wpPrincipal.IsInRole(WindowsBuiltInRole.Guest))
- }
- }
Das war's!
Und das war es auch schon mit diesem Mini-Tutorial.
Ich hoffe sehr, dass ich Ihnen damit weiterhelfen konnte.
Mit freundlichen Grüßen
Martin Pfeiffer (Gather)
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gather“ ()