1
我使用PrinciaplContext.ValidateCredentials來驗證一組針對本地計算機證書返回FALSE:PrincipalContext.ValidateCredentials總是與機ContextType在XP
string account = Context.ReadLine();
string pass = Context.ReadLine();
using (var context = new PrincipalContext(ContextType.Machine))
{
bool valid = context.ValidateCredentials(account, pass);
Console.WriteLine("valid: " + (valid ? "true" : "false"));
}
控制檯應用程序正在執行作爲管理員,我試圖驗證管理員帳戶/密碼。該機器運行Windows XP,不屬於域。
不管密碼是正確還是不正確,在作爲域的一部分的不同Windows XP機器上運行相同的代碼始終返回true。如果我使用ContextType.Domain指定帳戶正確驗證的域。
ValidateCredentials是否僅適用於針對XP的Machine環境?有沒有其他錯誤我沒有在這裏考慮?
我應該注意到,對於不是域成員的其他操作系統(例如Win7,Server2003,Server2008),驗證工作正常。 – 2010-09-02 19:25:32
我不知道Win7,但我相信服務器版本已經使用本地目錄類服務進行身份驗證。這將解釋這種差異。 – 2010-09-02 19:33:18
你可能是對的。最終,它看起來像我用它的東西,它不是爲了。 – 2010-09-02 21:07:53