2012-02-07 115 views
0

我正在寫一個Windows客戶端應用程序,我希望有一個全球唯一標識符不是由我的應用程序生成的(我不想生成GUID並將其保存在本地)。
此外 - 每個應用程序爲每個Windows用戶分別安裝。Windows登錄用戶唯一ID

我沒有問題uniquely identify the machine,但我不確定唯一標識用戶。我可以使用logged in user's SID(安全標識符),但我不確定SID的壽命是多少。

每個用戶的SID是不變的?或者它可能會改變每個會話?

關於如何唯一標識具有永久ID的用戶的任何想法?

(我想要一個預先存在的標識符,所以我可以檢測到返回的用戶) 應通過Win7支持Windows XP。

謝謝,

+0

不是存儲在文件ACL的硬盤上的令牌的SID?它應該最好不要改變太頻繁,然後... – PlasmaHH 2012-02-07 15:01:51

+0

@PlasmaHH - 我不想改變SID,我只是想確保它是不變的,不會改變永遠 – 2012-02-07 15:04:17

+0

我想你想識別*用戶帳戶*,而不是*用戶*。用戶是人類,沒有SID將唯一標識一個人。多人可以使用同一個帳戶登錄,並且一個人可以登錄多個帳戶。 SID不會幫助您檢測到這一點,而且您是否在意檢測該問題還不清楚。只需清楚你是否在追蹤人員或賬戶。 – 2012-02-07 15:28:18

回答

2

給定用戶的SID是不變的,不會在會話之間改變。

但是,對於域帳戶,同一用戶在多臺機器上具有相同的SID。

+0

謝謝!這就是我想知道的。所以只是爲了確保我正確理解你 - 在特定的機器上,每個用戶的SID是不變的。你可以用MSDN文章或其他東西來備份該語句嗎? – 2012-02-07 15:09:34

+0

http://msdn.microsoft.com/en-us/library/windows/desktop/ms721625.aspx#_security_security_identifier_gly – 2012-02-07 15:20:26

+0

Thanks @RogerLipscombe! – 2012-02-07 15:34:24