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 服务 |
是 |
网站 |
是 |
权限
可能需要下列权限:
权限 |
说明 |
---|---|
描述应用于代码的一组安全权限。关联的枚举:ControlPrincipal。 |