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
アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll 内)
使用可能なプロジェクトの種類
プロジェクトの種類 |
使用可/不可 |
---|---|
Windows アプリケーション |
可 |
クラス ライブラリ |
可 |
コンソール アプリケーション |
可 |
Windows コントロール ライブラリ |
可 |
Web コントロール ライブラリ |
可 |
Windows サービス |
可 |
Web サイト |
可 |
アクセス許可
次のアクセス許可が必要です。
アクセス許可 |
説明 |
---|---|
コードに適用される一連のセキュリティ アクセス許可を表します。関連する列挙値 : ControlPrincipal。 |
詳細については、「コード アクセス セキュリティ」および「アクセス許可の要求」を参照してください。