我們正在開發一個Web應用程序,該應用程序使用表單身份驗證和ActiveDirectoryMembershipProvider根據Active Directory對用戶進行身份驗證。我們很快發現提供程序不允許指定空白/空密碼,即使這在Active Directory中是完全合法的(只要預防性密碼策略不適用)。如何使ActiveDirectoryMembershipProvider接受空密碼?
禮貌反射:
private void CheckPassword(string password, int maxSize, string paramName)
{
if (password == null)
{
throw new ArgumentNullException(paramName);
}
if (password.Trim().Length < 1)
{
throw new ArgumentException(SR.GetString("Parameter_can_not_be_empty", new object[] { paramName }), paramName);
}
if ((maxSize > 0) && (password.Length > maxSize))
{
throw new ArgumentException(SR.GetString("Parameter_too_long", new object[] { paramName, maxSize.ToString(CultureInfo.InvariantCulture) }), paramName);
}
}
短編寫我們自己的自定義提供的,有沒有什麼辦法來覆蓋使用.NET的魔法此功能?
您可以連接到文件共享和映射網絡驅動器等與一個空/空密碼,除了ActiveDirectoryMembershipProvider之外,它全面支持。你是對的,沒有辦法在沒有創建子類的情況下重寫這種行爲。 – fletcher 2010-07-28 14:02:20