basicHttpBinding - как следует из названия - очень прост в том, что он предлагает. Это особенно важно, когда речь заходит о безопасности.
Насколько я знаю, вы не можете достичь того, что пытаетесь сделать. BasicHttpBinding поддерживает только безопасность транспорта (с использованием протокола https) с учетными данными Windows (не подходит для Интернета с настраиваемыми пользователями) или цифровыми сертификатами, а также защиту сообщений с помощью цифрового сертификата (который вы явно исключаете - почему ??).
Ознакомьтесь с этой статьей CodeProject 8 шагов, чтобы включить проверку подлинности Windows в WCF BasicHttpBinding или Google для «basicHttpBinding security» - вы найдете множество статей, но, вероятно, не найдете реального решения ваших требований - вы просто не можете сделать это с помощью BasicHttpBinding.
Обновление: по умолчанию в WCF, вы должны передавать учетные данные вызывающего абонента при каждом вызове - но не в качестве параметров метода службы, а вместо этого, указав учетные данные клиента на прокси-сервере службы, созданном на стороне клиента , Что-то вроде:
myService.ClientCredentials.UserName.UserName = "username";
myService.ClientCredentials.UserName.Password = "p@ssw0rd";