My.User.IsInRole() не работает после перехода на 4.6.2 framework в vb.net
В настоящее время я работаю над одним запросом на миграцию, где нам нужно изменить структуру с 3.5 на 4.6.2. Здесь проблема заключается в том, что после изменения структуры ниже метод не показывает ожидаемый результат.My.User.IsInRole()
возвращается null
,
Может кто-нибудь, пожалуйста, предложите эквивалентный код для вышеупомянутого или предложите шаги для решения проблемы в моей Visual Studio. Раньше я сталкивался с проблемой с My.User.Name
и изменил код на Environment.Username
но для этого я не могу найти какой-то альтернативный метод.
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"))