Я использую метод, имеющий следующую подпись:
public static bool TryAuthenticate(string userName, string password,
string domainName, out AuthenticationFailure authenticationFailure)
Метод объявляет: bool authenticated = false;
, затем продолжается для аутентификации пользователя.
Всякий раз, когда установлен authenticated
в true или false, authenticationFailure
устанавливается в AuthenticationFailure.Failure
или AuthenticationFailure.Success
соответственно.
Таким образом, в основном я могу использовать либо authenticationFailure, либо возвращаемое значение метода для проверки результата.Однако кажется бессмысленным нарушением СУХОГО использовать эти два подхода в одном методе.
Просто для пояснения: authenticationFailure не используется где-либо еще в методе, поэтому он представляется полностью избыточным.
На данный момент я делаю это:
public static bool IsValidLDAPUser(string username, string password, string domain)
{
var authenticationStatus = new AuthenticationFailure();
if (ActiveDirectoryAuthenticationService.TryAuthenticate(username, password, domain, out authenticationStatus))
return true;
else return false;
}
Но я мог бы сделать это и получить аналогичный результат:
public static AuthenticationFailure IsValidLDAPUser(string username, string password, string domain)
{
var authenticationStatus = new AuthenticationFailure();
ActiveDirectoryAuthenticationService.TryAuthenticate(username, password, domain, out authenticationStatus)
return authenticationStatus;
}
- Зачем вам ссылочный параметр, который делает то же самое, что и возвращаемое значение?
- Какой из них я должен использовать для проверки результата и имеет ли это какое-то значение?
- Этопросто случай плохого кода или я упускаю суть?
Заранее спасибо!