Faccio solo una premessa più in generale: quando si tratta di gestire lato client da browser dei tipi di documenti "particolari", es. pdf, xls, doc, ecc.... come essi saranno "aperti" dipende principalmente dalle impostazioni del browser e in parte anche da cosa eventualmente sceglie l'utente.
Mi spiego meglio: nel browser potrebbe essere attivo il plugin di Adobe Reader, nel qual caso un link ad un PDF potrebbe aprirsi con Adobe Reader incorporato nella pagina. Ma potrebbe essere disabilitato o potrebbe esserci un altro plugin che gestisce i PDF (es. io uso principalmente Firefox e nelle versioni più recenti ha un suo plugin per i PDF che non è comunque al livello di Adobe Reader ma è sufficiente in molti casi). L'utente potrebbe voler aprire il PDF esternamente al browser con la applicazione "predefinita" (quindi non incorporata nella pagina) oppure semplicemente scaricare e salvare il file su file-system.
Visto che le possibilità sono molteplici e il server generalmente ha ben poco controllo (limitato solo alla impostazione del content-type nella response) su come verrà aperto dal client, la soluzione più semplice e lineare è solo una: a seguito di una request al server, inviare al client lo stream binario pari pari del contenuto del PDF, specificando un content-type appropriato, es. "application/pdf". Se si vuole si può specificare es. "application/octet-stream" che il browser spesso (tipicamente) gestisce mostrando la classica dialog "apri con... o salva come..." (ma l'ultima parola spetta comunque al browser e a come è configurato!).
Potresti anche inviare direttamente lo stream del PDF nella response. Senza sapere altro comunque non posso sospettare problemi che ci potrebbero essere a riguardo.