迁移到vb.net

时间:2018-03-14 12:27:43

标签: vb.net .net-4.6.2 isinrole

目前我正在处理一个迁移请求,我们需要将框架从3.5更改为4.6.2。这里的问题是在更改下面的框架之后,方法没有按预期显示结果。 My.User.IsInRole()正在返回null

任何人都可以建议上面的等效代码或请建议在我的Visual Studio中解决问题的步骤。 之前我遇到了My.User.Name的问题并将代码更改为Environment.Username,但为此我无法找到其他替代方法。

1 个答案:

答案 0 :(得分:1)

My.User.IsInRole()不应该返回null / Nothing。返回值为Boolean

作为替代方案,您可以使用System.Security.Principal命名空间,如下例所示:

Imports System.Security.Principal

Class PrincipalCheck
    Shared Function UserInRole(role As String) As Boolean
        Dim currPrincipal As New WindowsPrincipal(New WindowsIdentity(Environment.UserName))
        Return currPrincipal.IsInRole(role)
    End Function
End Class

Public Sub StartCheck()
   MsgBox(PrincipalCheck.UserInRole("MyDomain\MyGroup"))
End Sub

但这应该会返回相同的结果:

MsgBox(My.User.IsInRole("MyDomain\MyGroup"))