有没有办法自定义Active Directories异常/错误消息?

时间:2011-05-24 07:14:50

标签: exception-handling active-directory

我正在使用Active Directory作为我网站用户的数据存储。如果密码不符合任何密码策略约束,我有Active Directory抛出以下异常。

  

- >提供的密码无效。   密码必须符合密码   配置的强度要求   默认提供商。

我可以以任何方式自定义此错误消息/通知吗?

我想要的是 - 如果'密码历史'是违反的约束,则错误消息应该这样说(例如新密码应该与最近使用的10个密码不同..

感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

你可以抓住这个并throw你拥有消息

try {
   // your error will probably appear here
    if (MembershipService.ValidateUser(usr, pwd))
    {
        ...
    }
}
catch(Exception ex)
{    
    // Let's see if we have Inner Exceptions to deal
    if(ex.InnerException != null)
        while(ex.InnerException != null)
            ex = ex.InnerException;

    // Now, let's check our exception
    if(ex.Message.StartsWith("The password supplied is invalid. Passwords must conform to the password strength requirements configured for the default provider."))
    {
        throw new Exception("My custom message goes here");
    }

    // Let's throw the original one 
    throw ex;
}

这是你想要完成的吗?

答案 1 :(得分:0)

您应该看到引发的Exception的确切类型,并为此异常设置特定的 catch

如果您看到此链接http://msdn.microsoft.com/en-us/library/0yd65esw.aspx,您会看到可以捕获多个特定的例外。

然后,您可以向用户返回您想要的任何信息。