Introducción:
Aquí tienes el código para saber si la aplicación se está ejecutando como
administrador.
Anteriormente publiqué dos formas de hacer esto mismo.
En la primera, el código
era válido tanto para Visual Basic como para C#.
En la segunda, el código
solo era válido para Visual Basic 2005, ya que usaba el objeto My.User.
En esta tercera, el código que he usado es una especie de equivalencia del
segundo, que es más simple.
Pero como C# no tiene el objeto My.User, aquí tienes el equivalente usando solo
las clases de .NET Framework 2.0.
Y ya que he hecho la conversión para C#, pues te muestro también el código
para Visual Basic 2005.
El código para Visual C# 2005:
// Otra forma de saber si se está ejecutando como administrador
// Hay que tener las importaciones a estos dos espacios de nombres:
using System.Security.Principal;
using System.Threading;
private bool EsAdministrador()
{
Thread.GetDomain().SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsPrincipal myUser = (WindowsPrincipal)Thread.CurrentPrincipal;
return myUser.IsInRole(WindowsBuiltInRole.Administrator);
}
El código para Visual Basic 2005:
' Otra forma de saber si se está ejecutando como administrador
' Hay que tener las importaciones a estos dos espacios de nombres:
Imports System.Threading
Imports System.Security.Principal
Private Function EsAdministrador() As Boolean
Thread.GetDomain().SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
Dim myUser As WindowsPrincipal = TryCast(Thread.CurrentPrincipal, WindowsPrincipal)
Return myUser.IsInRole(WindowsBuiltInRole.Administrator)
End Function
Espero que te sea de utilidad y lo administres bien... ;-))).
Nos vemos.
Guillermo
Espacios de nombres usados en el código de este artículo:
System.Security.Principal
System.Threading