Důvod nefunkčnosti My.User.IsInRole   zodpovězená otázka

WinForms, Bezpečnost

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.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

http://connect.microsoft.com/VisualStudi...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

No vida, tohle jsem zrovna nenašel. Na MSDN ale oficiálně tvrdí pravý opak, že to funguje i v konzolové aplikaci:

http://msdn.microsoft.com/en-us/library/...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Také jsem na prvních pár odkazů našel jen popis z MSDN.Nicméně nerozumím,nechápu,proč nemohou dodat správný popis i na MSDN,když o tom vědí.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ještě by mě zajímalo, jestli je to už ve Frameworku 4.0 opravené. Bohužel nemohu momentálně vyzkoušet, používám VS2008/3.5.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vyzkouším a dám vědět - nedostanu se k tomu bohužel ale dnes.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback