My.User オブジェクト
更新 : 2007 年 11 月
現在のユーザーに関する情報へのアクセスを提供します。
解説
My.User オブジェクトのプロパティとメソッドを使用すると、現在のユーザーに関する情報にアクセスできます。"現在のユーザー" という言葉の意味は、Windows アプリケーションと Web アプリケーションでは微妙に異なります。Windows アプリケーションでは、現在のユーザーとはそのアプリケーションを実行しているユーザーのことです。Web アプリケーションでは、現在のユーザーとはそのアプリケーションにアクセスしているユーザーのことです。
My.User プロパティでは、現在のユーザーに関する IPrincipal にもアクセスできます。プリンシパル オブジェクトはユーザーのセキュリティ コンテキストを表し、ユーザーの識別情報と、ユーザーが所属しているロールを含んでいます。
Windows アプリケーションでは、このプロパティは CurrentPrincipal プロパティと同じ働きをします。Web アプリケーションでは、このプロパティは、Current プロパティから返されるオブジェクトの User プロパティと同じ働きをします。
メモ : |
---|
Windows アプリケーションでは、[Windows アプリケーション] テンプレートから作成したプロジェクトに限り、My.User オブジェクトが既定で初期化されます。その他の種類の Windows プロジェクトの場合は、My.User.InitializeWithWindowsUser メソッド を明示的に呼び出すか、CurrentPrincipal に値を割り当てて、My.User オブジェクトを初期化する必要があります。 |
メモ : |
---|
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 内)