Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Windows에 로그인한 계정이 마이크로소프트의 계정인지, 로컬 계정인지 알아내는 방법

찾아 보니 다음과 같은 글이 있습니다.

Get Microsoft Account Id from Windows 8 desktop application
; https://stackoverflow.com/questions/19740975/get-microsoft-account-id-from-windows-8-desktop-application

실제로 위의 Q&A에 나온 답변에 따라 다음과 같이 알아낼 수 있습니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Principal;

public class Program
{
    public static void Main(string[] args)
    {
        var wi = WindowsIdentity.GetCurrent();

        var groups = from g in wi.Groups
                     select new SecurityIdentifier(g.Value)
                     .Translate(typeof(NTAccount)).Value;

        var msAccount = (from g in groups
                         where g.StartsWith(@"MicrosoftAccount\")
                         select g).FirstOrDefault();
        var test = msAccount == null ? wi.Name :
              msAccount.Substring(@"MicrosoftAccount\".Length);

        Console.WriteLine(test);
    }
}

각각의 출력 유형은 다음과 같습니다.

[마이크로소프트 계정]
계정이 test@outlook.com이라면, 출력도 "test@outlook.com"

[로컬 컴퓨터 계정]
컴퓨터 명이 testpc, 사용자 계정이 tester라면 "TESTPC\tester"

[Active Directory 계정]
AD 명이 TEST.COM이고, 사용자 계정이 tester라면 "TEST.COM\tester"




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 11/13/2018]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  10  11  12  13  [14]  15  ...
NoWriterDateCnt.TitleFile(s)
13635정성태5/29/202410966Phone: 19. C# MAUI - 안드로이드 "Share" 대상으로 등록하는 방법
13634정성태5/24/202411673Phone: 18. C# MAUI - 안드로이드 플랫폼에서의 Activity 제어 [1]
13633정성태5/22/202410988스크립트: 64. 파이썬 - ASGI를 만족하는 최소한의 구현 코드
13632정성태5/20/20249853Phone: 17. C# MAUI - Android 내에 Web 서비스 호스팅
13631정성태5/19/202410927Phone: 16. C# MAUI - /Download 등의 공용 디렉터리에 접근하는 방법 [1]
13630정성태5/19/20249935닷넷: 2263. C# - Thread가 Task보다 더 빠르다는 어떤 예제(?)
13629정성태5/18/202410414개발 환경 구성: 710. Android - adb.exe를 이용한 파일 전송
13628정성태5/17/20249658개발 환경 구성: 709. Windows - WHPX(Windows Hypervisor Platform)를 이용한 Android Emulator 가속
13627정성태5/17/20249810오류 유형: 904. 파이썬 - UnicodeEncodeError: 'ascii' codec can't encode character '...' in position ...: ordinal not in range(128)
13626정성태5/15/202411212Phone: 15. C# MAUI - MediaElement Source 경로 지정 방법파일 다운로드1
13625정성태5/14/202410280닷넷: 2262. C# - Exception Filter 조건(when)을 갖는 catch 절의 IL 구조
13624정성태5/12/202410011Phone: 14. C# - MAUI에서 MediaElement 사용파일 다운로드1
13623정성태5/11/20249591닷넷: 2261. C# - 구글 OAuth의 JWT (JSON Web Tokens) 해석파일 다운로드1
13622정성태5/10/202411492닷넷: 2260. C# - Google 로그인 연동 (ASP.NET 예제)파일 다운로드1
13621정성태5/10/202410827오류 유형: 903. IISExpress - Failed to register URL "..." for site "..." application "/". Error description: Cannot create a file when that file already exists. (0x800700b7)
13620정성태5/9/202410089VS.NET IDE: 190. Visual Studio가 node.exe를 경유해 Edge.exe를 띄우는 경우
13619정성태5/7/202410837닷넷: 2259. C# - decimal 저장소의 비트 구조 [1]파일 다운로드1
13618정성태5/6/20249733닷넷: 2258. C# - double (배정도 실수) 저장소의 비트 구조파일 다운로드1
13617정성태5/5/202411661닷넷: 2257. C# - float (단정도 실수) 저장소의 비트 구조파일 다운로드1
13616정성태5/3/20249730닷넷: 2256. ASP.NET Core 웹 사이트의 HTTP/HTTPS + Dual mode Socket (IPv4/IPv6) 지원 방법파일 다운로드1
13615정성태5/3/202411664닷넷: 2255. C# 배열을 Numpy ndarray 배열과 상호 변환
13614정성태5/2/202411380닷넷: 2254. C# - COM 인터페이스의 상속 시 중복으로 메서드를 선언
13613정성태5/1/20249965닷넷: 2253. C# - Video Capture 장치(Camera) 열거 및 지원 포맷 조회파일 다운로드1
13612정성태4/30/202411179오류 유형: 902. Visual Studio - error MSB3021: Unable to copy file
13611정성태4/29/20249999닷넷: 2252. C# - GUID 타입 전용의 UnmanagedType.LPStruct - 두 번째 이야기파일 다운로드1
13610정성태4/28/202411043닷넷: 2251. C# - 제네릭 인자를 가진 타입을 생성하는 방법 - 두 번째 이야기
1  2  3  4  5  6  7  8  9  10  11  12  13  [14]  15  ...