Если вы рассматриваете WCF, вы можете использовать usernameOverTransport security для basicHttpBinding. то есть username и passowrd находятся в заголовке SOAP запроса, и весь трафик защищен SSL-шифрованием по проводам.
Пользовательский валидатор UserNamePasswordValidator может использоваться для аутентификации входящих учетных данных, например базы данных.
Вы можете установить участника потока в пользовательском IAuthorizationPolicy в поведении службы.
например. Оценить реализацию метода для IAuthorizationPolicy для установки текущего участника
public bool Evaluate(EvaluationContext evaluationContext, ref object state)
{
Object obj;
if( evaluationContext.Properties.TryGetValue( "Identities", out obj ))
{
// get the authenticated identity
IIdentity client = (obj as IList<IIdentity>)[0];
evaluationContext.Properties["Principal"] = ... // create principal obj here for the identity
// this will set thread's current principal
}
return true;
}