Vb.net My.User.IsInRole返回false
我试图将vb.net应用程序从.net framework 2.0(Visual studio 2008)迁移到.net framework 4.7.0(Visual studio 2017)。这里的问题是,Vb.net My.User.IsInRole返回false,vb.net,isinrole,Vb.net,Isinrole,我试图将vb.net应用程序从.net framework 2.0(Visual studio 2008)迁移到.net framework 4.7.0(Visual studio 2017)。这里的问题是,IsInRole方法可以很好地检查当前用户是否是VisualStudio2008中角色的一部分。但是,当我在Visual Studio 2015或2017中打开相同的代码时,其返回的False与结果一致。问题不仅在于最新的Visual Studio中的IsInRole,还在于它为My.Use
IsInRole
方法可以很好地检查当前用户是否是VisualStudio2008中角色的一部分。但是,当我在Visual Studio 2015或2017中打开相同的代码时,其返回的False
与结果一致。问题不仅在于最新的Visual Studio中的IsInRole
,还在于它为My.User.Name
返回空值。有人能提出解决这个问题的办法吗。
PS:我们不应该做太多的代码更改。以下是问题
VS 2008返回True
VS 2017返回False
我还尝试了下面的代码(它也不能正常工作)
在一个MSDN门户网站上,一个人提到它对他不起作用,并告诉我向微软提出一个bug。但我不确定这是错误还是我的方法错了……尝试在应用程序启动时调用
my.User.initializeWithWindowUser()
。- 检查角色是否存在
此外,My.User.IsInRole仅适用于Windows窗体。此问题对您以前的问题几乎没有任何补充。
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