My.User.CurrentPrincipal Property

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

Property Value

A IPrincipal value representing the security context.

Exceptions

The following conditions can cause an exception:

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

Remarks

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.

Tasks

To

See

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

Example

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
    Else 
        ' The application is using custom authentication. 
        Return My.User.Name
    End If 
End Function

Requirements

Namespace:Microsoft.VisualBasic.ApplicationServices

Class:User, WebUser

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

Availability by Project Type

Project type

Available

Windows Application

Yes

Class Library

Yes

Console Application

Yes

Windows Control Library

Yes

Web Control Library

Yes

Windows Service

Yes

Web Site

Yes

Permissions

The following permission may be necessary:

Permission

Description

SecurityPermission

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

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

See Also

Tasks

How to: Determine a User's Login Name

How to: Determine the User's Domain

Walkthrough: Implementing Custom Authentication and Authorization

Reference

My.User Object

System.Security.Principal.IPrincipal

User.CurrentPrincipal