0

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

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

4

1 回答 1

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"))
于 2018-03-14T13:04:20.893 回答