System.Web.Security.(Sql)MembershipProvider
类有一些非常糟糕的设计缺陷:
有许多返回值的命令方法(AND throw exception),例如:
bool ChangePassword(string username, string oldPassword, string newPassword);
能够检索用户的密码,永远不应该这样做:
public abstract string GetPassword(string username, string answer);
并且存在一个严重的缺点,即无法在没有子类化的情况下生成仅限字母数字的密码。 (抱歉,找不到链接。)
是否有人在默认的ASP.NET MembershipProvider上创建了更符合CQS,设计更好的外观?如果没有,MSFT是否有计划改善这个 ahem 有点不理想的实现?