You need to separate two concepts:
AUTHENTICATION is the process of determining who it calls you to, and making sure that he is actually what he claims to be; this can be done using a username / password, Windows credentials (it has already authenticated in its Windows window through the system login) or require the caller to have some information (certificate)
AUTHORIZATION is a process - when you know who is calling you to determine what this caller can do (or what he cannot do)
Active Directory, WCF, Windows. - Windows , wsHttpBinding netTcpBinding. Windows , , ServiceSecurityContext.Current.WindowsIdentity:
WindowsIdentity caller = ServiceSecurityContext.Current.WindowsIdentity;
Intranet - . , wsHttp netTcp ( netTcp ).
- X.509, AD . .
, . , , . [PrincipalPermission(....)] , , , , .
[PrincipalPermission(SecurityAction.Demand, Role = "Administrators")]
[PrincipalPermission(SecurityAction.Demand, Name = "JohnDoe")]
public string SayHello(string caller)
{
......
}
"PrincipalPermission", "OR" -fashion - - , .
4 WCF , .