My.User 物件
更新:2007 年 11 月
提供目前使用者相關資訊的存取。
備註
My.User 物件所公開 (Expose) 的屬性和方法會提供目前使用者相關資訊的存取。在 Windows 與 Web 應用程式之間,「目前使用者」的意義略有不同。在 Windows 應用程式中,目前使用者是指執行應用程式的使用者。在 Web 應用程式中,目前使用者則是存取應用程式的使用者。
My.User 屬性也會為目前使用者提供 IPrincipal 的存取。主體物件代表使用者的安全性內容,包括該使用者的識別 (Identity) 以及使用者所屬的任何角色。
若是 Windows 應用程式,這個屬性會提供與 CurrentPrincipal 屬性相同的功能。若是 Web 應用程式,這個屬性則會提供與 Current 屬性所傳回之物件的 User 屬性相同的功能。
注意事項: |
---|
若是 Windows 應用程式,只有建置於 [Windows 應用程式] 範本的專案才會根據預設初始化 My.User 物件。在所有其他 Windows 專案型別中,您必須明確地呼叫 My.User.InitializeWithWindowsUser 方法 或指派值給 CurrentPrincipal,以便初始化 My.User。 |
注意事項: |
---|
因為 Windows 95 和 Windows 98 不支援已登入使用者的概念,所以在那些作業系統下執行時,My.User 物件無法報告目前 Windows 使用者的相關資訊。您必須實作自訂驗證 (Authentication),才能在那些作業系統上使用 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 中)