Assuming that the provided code works for you it should be
public static ClaimsPrincipal Authenticate(string userName, string password)
{
var principal = AuthenticateWindowsUser(userName, password);
var inputIdentity = (WindowsIdentity)principal.Identity;
var outputIdentity = new ClaimsIdentity(inputIdentity.AuthenticationType);
outputIdentity.AddClaim(new Claim(ClaimTypes.Name, inputIdentity.Name));
// other information from the membership provider
var user = Membership.GetUser( userName ) );
outputIdentity.AddClaim( new Claim( ClaimTypes.Email, user.Email ) );
...
// roles from role provider
foreach ( string role in Roles.GetRolesForUser( userName ) )
outputIdentity.AddClaim( new Claim( ClaimTypes.Role, role ) );
return new ClaimsPrincipal(outputIdentity);
}