目前我正在处理一个迁移请求,我们需要将框架从3.5更改为4.6.2。这里的问题是在更改下面的框架之后,方法没有按预期显示结果。
My.User.IsInRole()
正在返回null
。
任何人都可以建议上面的等效代码或请建议在我的Visual Studio中解决问题的步骤。
之前我遇到了My.User.Name
的问题并将代码更改为Environment.Username
,但为此我无法找到其他替代方法。
答案 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"))