Archive

Posts Tagged ‘CSS’

WebResource ASP.NET – Gerando URL diferente para cada servidor IIS

August 10, 2015 2 comments

Olá! Alegre

Cenário:

Imagine que você está desenvolvendo sua aplicação e ela requer diversos arquivos para funcionar, como: arquivos javascript, css, html, imagens, etc. Mas você não quer a solução final tenha diversos arquivos… Quer colocar toda a solução dentro de um único arquivo.

O WebResource (e o ScriptResource para versões mais atuais o .NET Framework) nos dão essa possibilidade. Assim, podemos compilar todos os arquivos de “apoio” dentro da DLL. Ou seja, o arquivo final será apenas uma DLL.

E os arquivos serão referenciados usando o WebResource. Já viram algumas aplicações que usam o WebResource.axd ou ScriptResource.axd seguido de uma longa QueryString?

Ex: http://<site>/WebResource.axd?d=7NnjFBcUeHcW9L9Vil_Xv8IVDbfvA_jo4F0ysa_kaopudWFLJ_17_kQ3sh-IDTrgjeEVswxCZAo-cYy0GgcvW-9WmDAYSrgwFIVHe3t4QVZpQk0CDLSpRoha_Cfp0zHEGsNVUg2&t=635745693347262797

O “d” é o parâmetro, criptografado, para o arquivo. O “t” é um timestamp usado para saber se o arquivo teve alteração ou não. São gerados automaticamente pelo .NET Framework.

image

image

image

ERRO:

Não é um erro, mas é um comportamento que precisamos contornar. Por padrão, o IIS vai usar a “MachineKey” autogenerated para montar a URL criptografada.

<machineKey validationKey="AutoGenerate,IsolateApps"

decryptionKey="AutoGenerate,IsolateApps"

validation="SHA1" decryption="Auto" />

Logo, em um ambiente com vários IIS em Load Balance, por exemplo, cada servidor irá gerar uma URL diferente para o “mesmo” recurso. Isso pode trazer problemas para ambientes que dependam do cache, pois como a URL muda, sempre irá fazer download.

Outros cenários podem ser afetados, como “robôs” de testes que são configurados com URLs. Quando o robô esperar uma URL, virá outra. Além de ViewState criptografada, session state e outros.

IIS 1:

clip_image002

IIS 2:

clip_image004

SOLUÇÃO:

Podemos “forçar” para que a URL criptografada seja sempre a mesma em todos os servidores IIS.

Para isso devemos configurar um valor para MachineKey no web.config da aplicação.

Na web existem alguns geradores de MachineKey. Tendo em mãos uma configuração de MachineKey (validationKey;decryptionKey), basta inserir no web.config da aplicação dentro da tag <system.web>.

Web.config:

clip_image006

IIS 1:

clip_image008

IIS 2:

clip_image010

NOTA: Atenção para os cenários de Cache, pois para que os arquivos sejam inseridos nas políticas de cache, o “compilation debug=’false’” não pode ser “true”.

https://support.microsoft.com/en-us/kb/2580348 – Debug Mode in ASP.NET Applications

“Scripts and images downloaded from the WebResource.axd and ScriptResource.axd handlers are not cached.”

“It is recommended that debug mode is always disabled in a production environment.”

Abraço!

Advertisements

Esconder botões da Ribbon. Ex: Baixar uma cópia

April 9, 2014 1 comment

Olá,

Seguindo o post de esconder links da MasterPage do SharePoint:

https://thiagottss.com.br/2014/03/31/como-esconder-skydrive-e-newsfeed-links-via-css/

 

Às vezes recebemos solicitações dos usuários pedindo que sejam removidos botões da Ribbon para uma aplicação e/ou site específico. E não queremos remover a Ribbon inteira… apenas alguns botões.

Para isso, primeiro identifique qual botão quer remover. Por exemplo, vou desabilidade o “Baixar uma cópia” (Download a copy) da Ribbon.

Usando o F12 do browser, vi que o id desse botão é “Ribbon.Documents.Copies.Download-Large” e ele é uma tag <a>.

Então, a linha de CSS abaixo irá esconder esse botão:

 

/*download a copy*/
a[id$=’Ribbon.Documents.Copies.Download-Large’] {
display:none;
}

 

Se você quiser esconder uma “seção” inteira da Ribbon, siga os mesmos passos, mas atente-se que a seção é uma tag <li> e não um <a>. Então, nesse outro exemplo escondi o “Marcas e Notas” (Tags and Notes). O id dessa seção inteira é “Ribbon.Documents.TagsAndNotes”.

 

/*Tags and Notes*/
li[id$=’Ribbon.Documents.TagsAndNotes’] {
display:none;
}

Abraço!

Thiago.

Como esconder skydrive e newsfeed links via CSS

March 31, 2014 2 comments

Olá! 🙂

 

Alguns clientes solicitam esconder os links que o SharePoint 2013 traz por padrão… Um exemplo, são os links do Newsfeed, Skydrive e Sites. Há diversas formas de remover, por exemplo, criando uma masterpage customizada.

Mas, de forma prática e rápida, prefiro esse "approach" de esconder via CSS. Para quem interessar, aqui está:

/*remover skydrive, newsfeed links*/
.ms-core-suiteLinkList
{display:none;
}

Screen Shot 2014-03-31 at 6.37.19 PM

E alguns outros links que você também pode remover/mudar:

/*mudar cor do header como podem perceber na imagem anterior*/
div#suiteBarLeft{
background-color: red;
}

/*TabRowRight -remove todos os links abaixo*/
/*#RibbonContainer-TabRowRight
{
display:none !important;
} */

Screen Shot 2014-03-31 at 6.39.33 PM

/*remove só o link de follow/acompanhar*/
#site_follow_button
{
display:none !important;
}
/*remove só o link de share/compartilhar*/
#ctl00_site_share_button
{
display:none !important;
}
/*remove só o link de fullscreen*/
#fullscreenmodebox
{
display:none !important;
}

/*remove só o link de sync*/
#ctl00_SyncPromotedAction
{
display:none !important;
}

 

Abraço!