This documentation is archived and is not being maintained.

My.User.CurrentPrincipal Property

Visual Studio 2008

Gets or sets the current principal (for role-based security).

' Usage
Dim value As System.Security.Principal.IPrincipal = My.User.CurrentPrincipal
' Declaration
Public Property CurrentPrincipal As System.Security.Principal.IPrincipal

A IPrincipal value representing the security context.

The following conditions can cause an exception:

  • The caller does not have the permission required to set the principal (SecurityException).

You can set the My.User.CurrentPrincipal property to an object that implements the IPrincipal interface to enable custom authentication.

In most project types, this property gets and sets the thread's current principal. In an ASP.NET application, this property gets and sets the security information for the current HTTP request's user identity.

This is an advanced member; it does not show in IntelliSense unless you click the All tab.



Get the user's login name

How to: Determine a User's Login Name

Get the user's domain name, if the application uses Windows authentication

How to: Determine the User's Domain

Implement custom authentication

Walkthrough: Implementing Custom Authentication and Authorization

This example checks if the application is using Windows or custom authentication, and uses that information to parse My.User.Name property.

Function GetUserName() As String 
    If TypeOf My.User.CurrentPrincipal Is _
    Security.Principal.WindowsPrincipal Then 
        ' The application is using Windows authentication. 
        ' The name format is DOMAIN\USERNAME. 
        Dim parts() As String = Split(My.User.Name, "\")
        Dim username As String = parts(1)
        Return username
        ' The application is using custom authentication. 
        Return My.User.Name
    End If 
End Function

Namespace: Microsoft.VisualBasic.ApplicationServices

Class: User, WebUser

Assembly: Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)

Availability by Project Type

Project type


Windows Application


Class Library


Console Application


Windows Control Library


Web Control Library


Windows Service


Web Site


The following permission may be necessary:




Describes a set of security permissions applied to code. Associated enumeration: ControlPrincipal.

For more information, see Code Access Security and Requesting Permissions.