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 值,表示安全性上下文。

异常

下面的情况可能会导致异常:

备注

可以将 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 服务

网站

权限

可能需要下列权限:

权限

说明

SecurityPermission

描述应用于代码的一组安全权限。关联的枚举:ControlPrincipal

有关更多信息,请参见代码访问安全性请求权限

请参见

任务

如何:确定用户的登录名

如何:确定用户的域

演练:实现自定义身份验证和授权

参考

My.User 对象

System.Security.Principal.IPrincipal

User.CurrentPrincipal