如果您正在考虑使用WCF,您可以使用basicHttpBinding的usernameOverTransport安全机制。即,用户名和密码储存在请求的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;
}