目前,我正在处理一个迁移请求,我们需要将框架从3.5更改为4.6.2。这里的问题是在更改下面的框架之后,方法没有按预期显示结果。 in
总是返回false。
My.User.IsInRole()
另外,我测试了以下代码:
If My.User.IsInRole(nlRole.InnerText) Then
hasRole = True
Exit For
End If
但没有运气。 有人可以帮助我解决上述问题。
如果您希望得到更多来自我的意见,请告诉我。
答案 0 :(得分:0)
我怀疑该问题可能与 Environment.UserName
的使用有关。尝试将其替换为 WindowsIdentity.GetCurrent()
,因此:
Shared Function UserInRole(role As String) As Boolean
Dim currPrincipal As New WindowsPrincipal(WindowsIdentity.GetCurrent())
Return currPrincipal.IsInRole(role)
End Function
但是,值得记住的是,用户帐户控制可能会成为障碍。如果您没有运行提升,那么上述方法不适用于 WindowsBuiltInRole.Administrator
,也可能是其他人。所以这也可能是一个问题。所以值得一看,当你跑高时是否得到不同的结果。