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