My.User.CurrentPrincipal プロパティ

更新 : 2007 年 11 月

ロール ベースのセキュリティのために現在のプリンシパルを取得または設定します。

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

戻り値

セキュリティ コンテキストを表す IPrincipal

例外

例外を引き起こす可能性のある状態を次に示します。

  • 呼び出し元がこのプリンシパルを設定するのに必要なアクセス許可を持っていない (SecurityException)。

解説

My.User.CurrentPrincipal プロパティに IPrincipal インターフェイスを実装するオブジェクトを設定すると、カスタム認証を有効にできます。

ほとんどの種類のプロジェクトでは、このプロパティはスレッドの現在のプリンシパルを取得および設定します。ASP.NET アプリケーションでは、このプロパティは現在の HTTP 要求のユーザー識別情報に関するセキュリティ情報を取得および設定します。

これは詳細メンバで、[すべての候補] タブをクリックしないと IntelliSense に表示されません。

処理手順

目的

参照項目

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

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

ユーザーのドメイン名を取得する (アプリケーションが 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

必要条件

名前空間 : Microsoft.VisualBasic.ApplicationServices

クラス : UserWebUser

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

使用可能なプロジェクトの種類

プロジェクトの種類

使用可/不可

Windows アプリケーション

クラス ライブラリ

コンソール アプリケーション

Windows コントロール ライブラリ

Web コントロール ライブラリ

Windows サービス

Web サイト

アクセス許可

次のアクセス許可が必要です。

アクセス許可

説明

SecurityPermission

コードに適用される一連のセキュリティ アクセス許可を表します。関連する列挙値 : ControlPrincipal

詳細については、「コード アクセス セキュリティ」および「アクセス許可の要求」を参照してください。

参照

処理手順

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

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

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

参照

My.User オブジェクト

System.Security.Principal.IPrincipal

User.CurrentPrincipal