none
Acesso por Ip ou nome de dominio RRS feed

  • Pergunta

  • Ola.

    Preciso publicar uma aplicação WEB que utiliza o report services, porém meu report services só responde pelo http://nome_maquina:81/ReportServer. Tentei realizar o acesso utilizando o endereço http://IP:81/ReportServer e o http://nome_maquina.dominio.com.br:81/ReportServer porém os mesmos solicitam autenticação tanto em estações clientes como no proprio servidor.

    Encontrei algo na net sobre alterações que deveriam ser realizadas no IIS, porém estou utilizando o 2008R2 e o SQL Std 2008 R2 e não é criado nenhum diretorio no IIS.

     

    Se alguem puder me ajudar, agradeço.

     

    Cristyan Giovane

    segunda-feira, 14 de fevereiro de 2011 18:34

Respostas

  • Pelo que você me descreveu sobre seu cenário são duas aplicações distintas , para cada uma você tem um tipo de restrição de acesso uma não se conversa com a outra por isso são dois controle de acessos separados.

    Uma forma de resolver isso é ter o mesmo tipo de autenticação nas duas aplicações por exemplo fazer uma referência do webservice do reporting service na sua aplicação web e autenticar na aplicação web e mostrar na página, no meu exemplo abaixo utilizei como padrão o excel para gerar direto.

     protected void Page_Load(object sender, EventArgs e)
     {
    
    
      if(!IsPostBack)
      {
            
       RptExe.ReportExecutionService rsexe = new RptExe.ReportExecutionService();
    
       rsexe.Credentials = System.Net.CredentialCache.DefaultCredentials;
    
       
       string reportPath = "NomeDoReport";
    
    
       // Render arguments
       byte[] result = null;
       string format = "Excel";//Tipo do report
       string historyID = null;
    
       string encoding;
       string mimeType;
       string extension;
       RptExe.Warning[] warnings = null;
       string[] streamIDs = null;
    
       RptExe.ExecutionInfo execInfo = new RptExe.ExecutionInfo();
          
    
       RptExe.ExecutionHeader execHeader = new RptExe.ExecutionHeader();
    
       rsexe.ExecutionHeaderValue = execHeader;
    
       execInfo = rsexe.LoadReport(reportPath, historyID);
    
       String SessionId = rsexe.ExecutionHeaderValue.ExecutionID;
    
       
       result = rsexe.Render(format, null, out extension, out encoding, out mimeType, out warnings, out streamIDs);
    
       Response.ClearContent();
       Response.AppendHeader("Content-disposition", result.Length.ToString());
       
       Response.ContentType = "application/vnd.ms-excel";
       
       Response.BinaryWrite(result);
       Response.Flush();
       Response.Close();   
    
      
      }
    
    

     

    ref http://support.microsoft.com/kb/875447

    ref http://sandeep-aparajit.blogspot.com/2010/02/how-to-execute-and-save-ssrs-report.html


    Américo Arvani
    MCP Frw web 2.0
    MCP Frw web/win 3.5
    Se ajudou , marque como resposta.
    http://americoarvani.blogspot.com
    • Marcado como Resposta Cristyan Giovane sexta-feira, 18 de fevereiro de 2011 20:40
    quinta-feira, 17 de fevereiro de 2011 19:06

Todas as Respostas

  • Olá,

    Tente configurar através do Reporting Services Configuration Manager

     Caminho no menu do Windows   Microsoft SQL Server 2008/ Configuration Tools /Reporting Services Configuration Manager

     http://msdn.microsoft.com/pt-br/library/ms156305.aspx

    Configure o Web Service URL em advance você pode configurar o IP , etc.

    Quanto ao nível de autenticação suportado e como configurar http://msdn.microsoft.com/pt-br/library/bb283249.aspx .


    Américo Arvani
    MCP Frw web 2.0
    MCP Frw web/win 3.5
    Se ajudou , marque como resposta.
    http://americoarvani.blogspot.com
    terça-feira, 15 de fevereiro de 2011 20:04
  • Olá.

    Quanto a configuração do ip no Configuration Manager, eu ja havia tentado, setando ou não o ip ele pede autenticação quando o acesso não é realizado pelo nome da maquina.

    Quanto aos niveis de autenticação vou testar agora... não sei exatamente como proceder, minha configuração atual esta assim.

     

    <Authentication>

    <AuthenticationTypes>

    <RSWindowsNegotiate/>

    <RSWindowsNTLM/>

    </AuthenticationTypes>

    <RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel>

    <RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario>

    <EnableAuthPersistence>true</EnableAuthPersistence>

    </Authentication>

    quarta-feira, 16 de fevereiro de 2011 16:36
  • Cristian ,

    Como você está fazendo essa atenticação?

    Veja se te ajuda eu tenho essa configuração e não tenho problemas .

    <Authentication>
    		<AuthenticationTypes>
    			<RSWindowsNegotiate/>
    			<RSWindowsNTLM/>
    		</AuthenticationTypes>
    		<EnableAuthPersistence>true</EnableAuthPersistence
    	</Authentication>
    

     

    A autenticação está sendo feito via AD

    Verifique se no web.config

    está

    <authentication mode="Windows" />
      <identity impersonate="true" />


    Américo Arvani
    MCP Frw web 2.0
    MCP Frw web/win 3.5
    Se ajudou , marque como resposta.
    http://americoarvani.blogspot.com

    quarta-feira, 16 de fevereiro de 2011 17:10
  • No Autentication havia duas linha além dessas, tentei remover e parou de funcionar.

    o web.config esta ok.

    O que acho estranho é que qndo utilizo o http://rsi10:81/ReportServer ele funciona perfeitamente, mas quando tento pelo http://192.168.0.14:81/ReportServer ele fica  solicitando o usurário e senha do domínio. Se informo um usuario valido ele funciona perfeitamente.

    quarta-feira, 16 de fevereiro de 2011 19:50
  • Bom dia, Cristian

    Qual a necessidade que você tem para fazer esse acesso via IP? Na minha opnião acredito que para fazer esse tipo de acesso ou você vai ter que ter um usuário de serviço , ou retirar a autenticação .


    Américo Arvani
    MCP Frw web 2.0
    MCP Frw web/win 3.5
    Se ajudou , marque como resposta.
    http://americoarvani.blogspot.com
    quinta-feira, 17 de fevereiro de 2011 11:23
  • Possuo uma aplicação WEB que utiliza ele, porém preciso publicar essa aplicação para alguns usuários acessarem de fora. 
    A aplicação até funcionou, mas quando uso nos relatórios o endereço valido do meu domínio, ele fica solicitando autenticação.
    quinta-feira, 17 de fevereiro de 2011 16:08
  • Pelo que você me descreveu sobre seu cenário são duas aplicações distintas , para cada uma você tem um tipo de restrição de acesso uma não se conversa com a outra por isso são dois controle de acessos separados.

    Uma forma de resolver isso é ter o mesmo tipo de autenticação nas duas aplicações por exemplo fazer uma referência do webservice do reporting service na sua aplicação web e autenticar na aplicação web e mostrar na página, no meu exemplo abaixo utilizei como padrão o excel para gerar direto.

     protected void Page_Load(object sender, EventArgs e)
     {
    
    
      if(!IsPostBack)
      {
            
       RptExe.ReportExecutionService rsexe = new RptExe.ReportExecutionService();
    
       rsexe.Credentials = System.Net.CredentialCache.DefaultCredentials;
    
       
       string reportPath = "NomeDoReport";
    
    
       // Render arguments
       byte[] result = null;
       string format = "Excel";//Tipo do report
       string historyID = null;
    
       string encoding;
       string mimeType;
       string extension;
       RptExe.Warning[] warnings = null;
       string[] streamIDs = null;
    
       RptExe.ExecutionInfo execInfo = new RptExe.ExecutionInfo();
          
    
       RptExe.ExecutionHeader execHeader = new RptExe.ExecutionHeader();
    
       rsexe.ExecutionHeaderValue = execHeader;
    
       execInfo = rsexe.LoadReport(reportPath, historyID);
    
       String SessionId = rsexe.ExecutionHeaderValue.ExecutionID;
    
       
       result = rsexe.Render(format, null, out extension, out encoding, out mimeType, out warnings, out streamIDs);
    
       Response.ClearContent();
       Response.AppendHeader("Content-disposition", result.Length.ToString());
       
       Response.ContentType = "application/vnd.ms-excel";
       
       Response.BinaryWrite(result);
       Response.Flush();
       Response.Close();   
    
      
      }
    
    

     

    ref http://support.microsoft.com/kb/875447

    ref http://sandeep-aparajit.blogspot.com/2010/02/how-to-execute-and-save-ssrs-report.html


    Américo Arvani
    MCP Frw web 2.0
    MCP Frw web/win 3.5
    Se ajudou , marque como resposta.
    http://americoarvani.blogspot.com
    • Marcado como Resposta Cristyan Giovane sexta-feira, 18 de fevereiro de 2011 20:40
    quinta-feira, 17 de fevereiro de 2011 19:06