Potřeboval jsem v programu zjistit, zda je aktuální uživatel členem skupiny Administrators. Protože jsem zvyklý na práci s velice užitečným (a návykovým) My a nechce se mi zbytečně psát kód navíc, neváhal jsem použít My.User.IsInRole(ApplicationServices.BuiltInRole.Administrator). Jenže z naprosto neznámého důvodu tato metoda vrací False, i když je aktuální uživatel členem Administrators (a UAC je vypnuté). Musel jsem tedy použít následující kód, který funguje:
Dim currentPrincipal = New WindowsPrincipal(WindowsIdentity.GetCurrent())
If Not currentPrincipal.IsInRole(WindowsBuiltInRole.Administrator) Then
'...
End If
Vůbec nechápu, proč nefunguje My.User.IsInRole. Dotaz jsem položil i přímo na MSDN, tak jsem zvědav na případné reakce. Pokud někdo bude vědět proč se to děje, nebo co dělám špatně, budu jenom rád.
|