Apenas para dar uma base sobre o que estou baseando minhas respostas, eu desenvolvo o PHP profissionalmente há mais de 6 anos, ando brincando com o ASP.NET MVC há cerca de 3 a 4 meses e faço C # programação por tanto tempo quanto a programação PHP.
Para mim, este é mais um argumento PHP vs C # do que um PHP vs ASP.NET.
Recurso / extensibilidade
Acho que o ASP.NET vence aqui e isso é mais devido à capacidade de usar uma linguagem como C #. C # é uma linguagem muito melhor que PHP, com suporte ao OO. Eu também sou uma pessoa que prefere uma linguagem de tipo estaticamente (mesmo pensando em C # 4.0, acredito que você pode fazer variáveis de tipo dinâmico). A única coisa que o PHP tinha sobre o C #, no que diz respeito a um recurso de linguagem, eram parâmetros opcionais, mas isso é outra coisa que foi adicionada no C # 4.0 (não tenho certeza de como ele funciona, pois ainda não tentei).
Segurança
Eu provavelmente diria que é uma lavagem entre os dois. Eu acho que os dois possuem funcionalidade para ajudar na segurança, mas, em última análise, é tarefa do programador garantir que seu aplicativo seja seguro.
Estruturas
Bem, o PHP parece ter muito mais estruturas mainstream (CakePHP, Codeigniter, Symfony, Zend Framework) e muitas outras estruturas menores que o ASP.NET. O ASP.NET possui 2 estruturas principais da Microsoft, WebForms (uma porcaria total) e ASP.NET MVC (a razão pela qual eu comecei a entrar no desenvolvimento do ASP.NET). Embora o PHP tenha mais estruturas, acho que a estrutura do ASP.NET MVC 3 é melhor do que qualquer uma das estruturas do PHP.
Tempo Médio de Desenvolvimento
Eu acho que, para projetos menores, o tempo de desenvolvimento é muito melhor em PHP, porém, à medida que seu projeto cresce em tamanho, o C # escala melhor nesse sentido.
Custo
Parte que deve ser mencionada é o custo. O PHP passa a ganhar nesta frente. Embora você possa executar o ASP.NET no Mono no Linux, ele vem com seus próprios problemas.
Se você estiver executando um projeto de pequeno a médio porte e / ou o custo for um fator, o PHP vence. Se você estiver fazendo um projeto de grande escala, eu escolheria o ASP.NET com C # e o ASP.NET MVC.