社本@元ネオニート Blog

社本@元ネオニート (元々ワック) のいたずら書き (for Programmers)

AILight Banner
AILight Blog

プロフィール

社本@元ネオニート Blog
働いたら負けかなと思っていたのですが。。とうとう働き始めました。アメリカのシアトル・エリアにある企業向けのバックアップソフトを開発している会社です。日本人は私だけ。なんとか。。やっていけてるようです。

目次

Blog 利用状況

記事分類

過去の記事

タグ

SIDから、アカウント名とドメイン名を取得 - Security

SIDから、アカウント名とドメイン名を取得する方法です。
せっかくSIDが取れても、そのままじゃテストもしづらいんで。。

---
 static HRESULT LookupAccountSid(LPCTSTR szSystemName, LPCTSTR szSid, CString& strAccountName, CString& strDomainName)
 {
  HRESULT hr = S_OK;

  strAccountName.Empty();
  strDomainName.Empty();

  PSID pSid = NULL;
  BOOL br = ::ConvertStringSidToSid(szSid, &pSid);
  if (!br)
  {
   DWORD dwError = ::GetLastError();
   return HRESULT_FROM_WIN32(dwError);
  }

  hr = CSidHelper::LookupAccountSid(szSystemName, pSid, strAccountName, strDomainName);
  if (FAILED(hr))
  {
   ::LocalFree(pSid);
   return hr;
  }

  ::LocalFree(pSid);
  return hr;
 }
 static HRESULT LookupAccountSid(LPCTSTR szSystemName, PSID pSid, CString& strAccountName, CString& strDomainName)
 {
  HRESULT hr = S_OK;

  strAccountName.Empty();
  strDomainName.Empty();

  TCHAR szAccountName[128];
  DWORD cbAccountName = sizeof(szAccountName);
  TCHAR szDomainName[128];
  DWORD cbDomainName = sizeof(szDomainName);
  SID_NAME_USE snu = SidTypeUnknown;
  BOOL br = ::LookupAccountSid(szSystemName, pSid, szAccountName, &cbAccountName, szDomainName, &cbDomainName, &snu);
  if (!br)
  {
   DWORD dwError = ::GetLastError();
   return HRESULT_FROM_WIN32(dwError);
  }

  strAccountName = szAccountName;
  strDomainName = szDomainName;

  return S_OK;
 }
---

■LookupAccountSid
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpsecupf/html/_win32_LookupAccountSid.asp

■[SDK32] カレント ユーザーとドメイン名の検索
http://support.microsoft.com/default.aspx?scid=kb;ja;111544

投稿日時 : 2005年1月24日 4:04


コメントを追加

タイトル
名前
URL
コメント