Ответы с форумов MSDN

ASP.NET Core - Как узнать, под каким пользователем запущен процесс?

Date: 16.01.2020 3:46:38

>Но как извлечь у процесса w3wp.exe имя пользователя имея только возможности ASP.NET Core 3.0 не могу найти варианта. "

Никак, ASP.NET Core ничего не знает о пользователях Windows. Да и что это даст? Скорее всего, там будет безликая учетная запись службы, типа NETWORK SERVICE. Кроме того, если процесс IIS запускается не под текущим пользователем и у вашего процесса ограниченные привилегии, вы вообще не должны его видеть, разве нет?  А нет, они будут видны при перечислении процессов, но никакого доступа к ним не будет. 

Зачем вам нужно знать потребление памяти процессом, в котором не запускается только небольшой модуль, перенаправляющий запросы в ASP.NET Core? Из любопытства, или у вас приложение страдает от нехватки памяти?


Message 147

Date: 16.01.2020 5:12:11

Попробуйте этот метод натравить на все процессы:

using System;
using System.Runtime.InteropServices;
using System.Diagnostics;

namespace NetCoreTest
{
    class Program
    {       

        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern IntPtr OpenProcess(
            uint processAccess,
            bool bInheritHandle,
            int processId
        );

        [DllImport("kernel32.dll", SetLastError = true)]        
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool CloseHandle(IntPtr hObject);

        static uint PROCESS_QUERY_INFORMATION = 0x0400;

        public static bool TryOpenProcess(Process proc)
        {
            IntPtr handle = OpenProcess(PROCESS_QUERY_INFORMATION, false, proc.Id);
            if (handle != IntPtr.Zero)
            {
                CloseHandle(handle);
                return true;
            }
            else return false;
        }        
    }
}

Он должен, при запуске с обычными правами, вернуть true для всех процессов, запущенных от текущего пользователя, и false для системных процессов и процессов других пользователей.


Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub