My.User オブジェクト

更新 : 2007 年 11 月

現在のユーザーに関する情報へのアクセスを提供します。

解説

My.User オブジェクトのプロパティとメソッドを使用すると、現在のユーザーに関する情報にアクセスできます。"現在のユーザー" という言葉の意味は、Windows アプリケーションと Web アプリケーションでは微妙に異なります。Windows アプリケーションでは、現在のユーザーとはそのアプリケーションを実行しているユーザーのことです。Web アプリケーションでは、現在のユーザーとはそのアプリケーションにアクセスしているユーザーのことです。

My.User プロパティでは、現在のユーザーに関する IPrincipal にもアクセスできます。プリンシパル オブジェクトはユーザーのセキュリティ コンテキストを表し、ユーザーの識別情報と、ユーザーが所属しているロールを含んでいます。

Windows アプリケーションでは、このプロパティは CurrentPrincipal プロパティと同じ働きをします。Web アプリケーションでは、このプロパティは、Current プロパティから返されるオブジェクトの User プロパティと同じ働きをします。

a3da82hw.alert_note(ja-jp,VS.90).gifメモ :

Windows アプリケーションでは、[Windows アプリケーション] テンプレートから作成したプロジェクトに限り、My.User オブジェクトが既定で初期化されます。その他の種類の Windows プロジェクトの場合は、My.User.InitializeWithWindowsUser メソッド を明示的に呼び出すか、CurrentPrincipal に値を割り当てて、My.User オブジェクトを初期化する必要があります。

a3da82hw.alert_note(ja-jp,VS.90).gifメモ :

Windows 95 および Windows 98 はログオン中のユーザーという概念をサポートしていないので、これらのオペレーティング システムで実行している場合には、My.User オブジェクトは現在の Windows ユーザーに関する情報を報告できません。これらのオペレーティング システム上で My.User オブジェクトを使用するためには、カスタム認証を実装する必要があります。詳細については、「チュートリアル : カスタムの認証および承認の実装」を参照してください。

処理手順

My.User オブジェクトに関連するタスクの例を次の表に示します。

目的

参照項目

ユーザーのログイン名を取得する

方法 : ユーザーのログイン名を確認する

ユーザーのドメイン名を取得する (アプリケーションが Windows 認証を使用している場合)

方法 : ユーザーのドメインを確認する

ユーザーのロールを確認する

方法 : ユーザーがグループに属しているかどうかを確認する

カスタム認証を実装する

チュートリアル : カスタムの認証および承認の実装

使用例

この例では、アプリケーションが Windows 認証とカスタム認証のどちらを使用しているかを調べ、その情報に基づいて My.User.Name プロパティを解析します。

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

必要条件

アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll 内)

参照

参照

My.User オブジェクトのメンバ

IPrincipal

CurrentPrincipal

User

Current