실제로 위의 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"