Как я могу получить SID текущей учетной записи Windows?

Вот несколько простых методов для вертикального выравнивания:

Однострочное вертикальное выравнивание: среднее

Это легко: установите высоту строки текстового элемента в равный таковому для контейнера

Doesn't work.

Несколько строк по вертикали: нижний

Абсолютно поместите внутренний div относительно его контейнера

This is positioned on the bottom

Несколько -lines vertical-align: middle

This is positioned in the middle

Если вы должны поддерживать древние версии IE & lt; = 7

Чтобы заставить это работать правильно по всем направлениям, придется немного взломать CSS. К счастью, есть ошибка IE, которая работает в нашу пользу. Устанавливая top:50% на контейнере и top:-50% на внутреннем div, вы можете добиться того же результата. Мы можем комбинировать эти два варианта с помощью другой функции, IE не поддерживает: расширенные селектора CSS.



Works in everything!

Переменная высота контейнера по вертикали: средняя

Это решение требует немного более современного браузер, чем другие решения, поскольку он использует свойство transform: translateY. ( http://caniuse.com/#feat=transforms2d )

Применение следующих трех строк CSS к элементу будет вертикально центрировать его внутри родителя независимо от высоты родительский элемент:

position: relative;
top: 50%;
transform: translateY(-50%);

30
задан Franci Penov 30 October 2008 в 19:10
поделиться

6 ответов

В Win32 звоните GetTokenInformation, передавая маркерный дескриптор и TokenUser постоянный. Это заполнит структура TOKEN_USER для Вас. Одним из элементов там является SID пользователя. Это - BLOB (двоичный файл), но можно превратить его в строку при помощи ConvertSidToStringSid.

Для овладения текущим маркерным дескриптором используйте OpenThreadToken или OpenProcessToken.

, Если Вы предпочитаете ATL, он имеет класс CAccessToken , который имеет все виды интересных вещей в нем.

.NET имеет эти Поток. Свойство CurrentPrinciple, которое возвращает ссылку IPrincipal. Можно получить SID:

IPrincipal principal = Thread.CurrentPrincipal;
WindowsIdentity identity = principal.Identity as WindowsIdentity;
if (identity != null)
    Console.WriteLine(identity.User);

Также в.NET, можно использовать WindowsIdentity. GetCurrent (), который возвращает текущий идентификатор пользователя:

WindowsIdentity identity = WindowsIdentity.GetCurrent();
if (identity != null)
    Console.WriteLine(identity.User);
50
ответ дан Roger Lipscombe 31 October 2008 в 05:10
поделиться

Это должно дать Вам, в чем Вы нуждаетесь:

Система использования. Безопасность. Принципал;

...

var sid = WindowsIdentity. GetCurrent ().User;

Свойство пользователя WindowsIdentity возвращает SID, на Документы MSDN

7
ответ дан Jeffrey Meyer 31 October 2008 в 05:10
поделиться

CodeProject имеет несколько различных методов, которые можно попробовать... Вы не упоминали, в каких языках Вы хотели решение.

, Если Вы хотите получить доступ к нему через пакетный файл или что-то, можно посмотреть как PsGetSid Sysinternals. Это переводит SIDs в имена и наоборот.

2
ответ дан Kevin Fairchild 31 October 2008 в 05:10
поделиться

В C# можно использовать любой

using Microsoft.Win32.Security;

...

string username = Environment.UserName + "@" + Environment.GetEnvironmentVariable("USERDNSDOMAIN");

Sid sidUser = new Sid (username);

Или...

using System.Security.AccessControl;

using System.Security.Principal;

...

WindowsIdentity m_Self = WindowsIdentity.GetCurrent();

SecurityIdentifier m_SID = m_Self.Owner;");

2
ответ дан silverbugg 31 October 2008 в 05:10
поделиться

Вы не указывали, какой язык Вы хотите. Но если Вы подлежите C#, эта статья предлагает обоим метод WMI, а также более быстрое (в то время как более подробный) метод, использующий API Win32.

http://www.codeproject.com/KB/cs/processownersid.aspx

, я не думаю, в настоящее время существует другой способ сделать это, не используя WMI или API Win32.

0
ответ дан Mel Green 31 October 2008 в 05:10
поделиться
  • 1
    Никакой prob, но it' s не действительно багги. Это делает точно что it' s разработанный для. Круговой - для использования когда Вы don' t знают, сколько времени что-то возьмет. Android UI последовательно использует тип панели для указания " процент done" и проспект для " работа в progress" таким образом, пользователи понимают что каждое средство. – Geobits 17 October 2012 в 08:17

в cmd.exe

whoami / пользователь

при необходимости в нем программно, спросите более указанный

0
ответ дан 27 November 2019 в 23:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: