Quem você deseja autenticar no SQL Server? A identidade do pool de aplicativos do IIS ou a identidade do usuário do Web client? Em outras palavras, você representa no IIS / ASP? E quando você diz 'IIS', você quer dizer alguma forma de processo de ASP / ASP.Net / pool de aplicativos, certo?
Se você não representar, o SQL autenticará a identidade do pool de aplicativos. Se o pool de aplicativos estiver sendo executado como um usuário do domínio, esse será o suer do domínio. Se o pool de aplicativos estiver sendo executado como serviço de rede ou LocalSystem, ele será a identidade do host (domain \ hostname $ account). Se o pool de aplicativos estiver sendo executado como um usuário local ou um serviço local, ele não será suportado e você deverá usar uma identidade suportada.
Se você representar, então, na verdade, estará delegando a identidade do usuário do cliente e, para isso, será necessário habilitar o IIS / ASP para delegação restrita. Há muita literatura sobre como fazer isso:
- Como: usar a transição de protocolo e a delegação restrita no ASP.NET 2.0
- Configurando a delegação restrita para Kerberos (IIS 6.0)
É claro que tanto o IIS quanto o SQL Server devem ser meberes de domínios com uma relação de confiança existente entre eles, caso contrário a autenticação não é possível (o 'truque' de usuário / senha idêntico é um hack horrível).
Depois de descobrir em quem exatamente o shoudl de autenticação resulta, você pode executar as etapas para permitir a autorização dentro do SQL Server, que são as etapas de ususal ( crie um login , conceda direitos apropriados, crie um usuário , conceda direitos apropriados).
Como observação, o código não deve permitir exceções sem tratamento. Talvez seja hora de ELMAH ?