Daniel Bragagnolo

Let's getting the things done.
Habilitando o Full Trust

A algum tempo atraz eu escrevi um post aqui explicando sobre o Security Exception, referente aos erros que acontecem quando rodamos a aplicação no cliente, acessando banco de dados remoto.

Acontece que recentemente, ao usar o que eu mesmo escrevi no post, me deparei com uma situação nova, onde a opção para configuração do Microsoft .NET Framework não estava visível dentro das Ferramentas Administrativas da máquina cliente.

A primeira coisa que pensei foi: "essa maquina não tem o framework instaldo!" e pela minha surpresa, eu estava errado, ela tinha sim!
Bom, depois de coçar a cabeça e reinstalar o framework, mesmo assim a opão de configuração não apareceu.

Decidi parar, tomar um café e pensar um pouco, foi quando me lembrei do CASPOL um utilitário que serve justamente pra isso, habilitar o full trust, sem precisar usar a o utilitário de configuração do framework.
Eis que uma luz se acende... o caspol é um utilitário de linha de comando, que pode ser executado no script de logon de usuário por exemplo, o que resolveria meu problema perfeitamente.

Testei, executei e bang! na mosca.

Pra quem precisar, esse é o procedimento:

Vá em iniciar > programas > acessorios > prompt de comando e digite o caminho do arquivo caspol.exe passando os parametros conforme abaixo: 

C:\windows\microsoft.net\framework\v2.0.50727\caspol.exe -machine -chggroup 1.2 FullTrust

Este comando dá permissão total para a zona intranet.

caspol.exe -? (mostra uma lista dos comandos disponiveis)
caspol.exe -s off (desliga temporariamente o "cas" e voce fica livre para executar qualquer acão que não seria possivel executar sem permissão.)

 

Regular Expression

Pessoal, depois de procurar muito e quebrar bastante a cabeça, consegui chegar em uma regular expression para aceitar números positivos/negativos com até 4 casas decimals.

Eis o exemplo:
^[-]?([1-9]{1}[\d]{0,4}(\,[\d]{3})*(\.[\d]{0,4})?|[1-9]{1}[\d]{0,}(\.[\d]{0,4})?|0(\.[\d]{0,4})?|(\.[\d]{1,2})?)$


Quem precisar de mais casos, ou outros tratamentos, aqui vai um site muito bom para referência.

Evento Gratuito - Codificando .NET 2008

No dia 05/04 (sábado), na UNIP Tatuapé, acontecerá um grande evento organizado pela comunidade Codificando.NET.

O evento contará com uma excelente grade de palestras, sessões Hands Off, e mesa redonda com especialístas, além de pralestrantes renomados no mundo Microsoft.

Para participar, é só se inscrever gratuitamente, ou também pode acessar aqui o site oficial do evento.

 

Quem for da região de Campinas e estiver a fim de prestigiar, estou buscando companheiros para empreitada. Entrem em contato comigo por e-mail.

 

Security Exception (continuação...)

No post anterior eu tentei exclarecer como resolver o problema de direitos de usuário quando se usa um sistema Windows Forms em maquinas clientes de uma rede local.

Porém, quando tentei dar a mesma solução para aplicações desenvolvidas no .NET Framework 2.0, eu tive a surpresa de não encontrar o icone do "Microsoft .NET Framework 2.0 Configuration" dentro das ferramentas administrativas no Painel de Controle da máquina :.(

Reparando no atalho que existia no meu note (maquina de desenvolvimento) eu percebi que ele apontava para um arquivo dentro da pasta do Visual Studio 2005: "C:\Arquivos de programas\Microsoft Visual Studio 8\SDK\v2.0\Bin\mscorcfg.msc". E, como as maquina cliente não possuem (obviamente) o VS2005 instalado, elas não poderiam ter esse arquivo.

Pesquisando mais um pouco, encontrei a solução para o caso, basta rodar o seguinte comando que usa o arquivo CASPOL.EXE (Code Access Security Policy) o qual garante a permissão FullTrust para a aplicação:

CasPol.exe -q -m -ag All_Code -zone Intranet FullTrust


Maiores informações sobre o nosso amigo podem ser encontradas aqui:
http://msdn2.microsoft.com/en-us/library/cb6t8dtz(VS.80).aspx

Security Exception

Security Exception
Description: The application attempted to perform an operation not allowed by the security policy.  To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.

Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Para quem está tendo problemas ao fazer a aplicação rodar no cliente, mais especificamente em relação a permissões de acesso a dados, segue alguns passos para a solução da exception acima:

Caso a aplicação tenha algum problema, erro ao tentar acessar o banco, ou seja, no .open do método, cujo erro é “Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.”, seguir os seguintes passos:

Iniciar >>

Painel de controle >>

Ferramentas Administrativas >>

*Microsoft .NET Framework 2.0 Configuration >>

Expandir MyComputer >>

RunTime Security Policy >>

Users >>

Code Groups >>

All Code >>

Edit Code Group Properties >> Aba Permission Set >> Deverá estar na opção FullTrust no combo.

Faça o mesmo para Machine e Interprise.
Em Machine a permissão deve ser Nothing e Interprise deve ser Full Trust.

Caso tudo isso esteja certo, clique com o botão direito do mouse em RunTime Security Policy >> Adjust Security >> Make change to this computer >> Next >> Local Intranet >> Verifique onde está a barrinha Full trust – No Trust, coloque a barrinha em Full Trust (primeiro pontinho de cima para baixo) >> Next >> Finish.

*Versão da plataforma que está usando.

About My Professional Life

Como muitas pessoas andam me perguntando coisas sobre mim, quais áreas que tenho trabalhado, tecnologias usadas, etc, resolvi escrever esse post falando um pouco sobre minhha vida profissional.

Meu nome é Daniel Henrique Bragagnolo e sou especialista em desenvolvimento de software há mais 8 anos. Estudo e utilizo a plataforma .NET desde seu lançamento beta. Atualmente tenho desenvolvido aplicações Web, Windows Forms, Windows Services e também gasto uma boa parte do meu tempo definindo arquiteturas para os diversos cenários da empresa.

Meus estudos no momento estão voltados para a área de arquitetura de sistemas (Design Patterns, N-tiers, SOA, WCF, etc), além de metodologias como MSF, ITIL e principalmente Gestão de Projetos de TI com PMI.

Atualmente trabalho em uma empresa do ramo automotivo na cidade de Campinas, que utiliza a plataforma .NET 1.1 na maioria de seus sistemas mais recentes, e algumas novas implementações na versão 2.0 também estão sendo estudadas. Atuo também junto a algumas empresas da região prestando consultoria em análise, arquitetura e desenvolvimento de software.

Além disso, tenho escrito alguns artigos como colaboração para alguns sites (linhadecodigo e devmedia) e revistas (.NET Magazine). Sempre que tenho tempo, procuro dar ma força no forum da MSDN respondendo dúvidas da comunidade .NET no geral.

Only this :.)

Livros da Microsoft Press com até 50% de desconto

Senhores, o site BookPool está com uma grande promoção de livros da MS PRESS com até 50% de desconto.
Dentre os títulos estão: .NET 3.5, SharePoint, Windows Server 2008, Visual Studio 2008, Silverlight, e outros.

Vale a pena dar uma conferida!!!

Conversão de código no seu Desktop

É isso mesmo, com o Windows Vista é possível baixar um Gadget free que converte código VB.NET para C# e vice-versa.

Acredito ser de bastante utilidade para desenvolvedores .NET, segue o link:
http://gallery.live.com/LiveItemDetail.aspx?li=75cffe62-c8d0-4feb-a028-5ac8638b5321

Internacionalização com .NET

Muitas vezes temos a responsabilidade de desenvolver sistemas que serão usados em vários países, com diferentes culturas, formatos de moedas, datas, etc.

No .NET Framework existe um recurso que nos ajuda bastante nesse sentido, é o chamado System.Globalization.CultureInfo, com ele podemos customizar o formato da data, moeda, calendário e outros.

Segue um exemplo de como usar esse recurso para modificar o formato da data:

Imports System.Globalization

Dim DTFormat As DateTimeFormatInfo = New CultureInfo("es-MX", False
).DateTimeFormat
Dim DT As New
DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day)

Dim strDate As String
= DT.ToString(DTFormat.LongDatePattern)
MessageBox.Show(strDate)


Note: Nesse exemplo estamos usando o formato de data Mexicano como exemplo, mas
aqui é possível encontrar um artigo completo do Mauro Sant'Anna sobre o tema, além de uma lista completa das siglas para quase todos os países.

 

Verificando o UserGroup do Usuário logado

Muitas vezes, para quem usa WindowsAuthentication, é necessáriao verificar o grupo do usuário logado para garantir permissões em certas áreas do sistema.

Eis um código bem simples (.NET 2.0) que faz isso:

Imports System.Security.Principal
Imports System.Threading

Dim objUser As WindowsPrincipal = DirectCast(Thread.CurrentPrincipal, WindowsPrincipal)
Dim blnAuth As Boolean = objUser.IsInRole("Administrators")


Note: O método IsInRole valida e retorna True se o usuário logado estiver contido no grupo informado no parâmetro.

Relatório indica que 90% das aplicações para web são vulneráveis

São Francisco - Atualmente, há em torno de 100 milhões a 150 milhões de aplicações online, e a maioria está vulnerável a ataques, diz Cenzic.

Pelo menos 90% das aplicações web estão vulneráveis a algum tipo de ataque, aponta levantamento do fornecedor de segurança de internet Cenzic.

O vice-presidente da empresa diz que o cenário não melhorou em relação as pesquisas anteriores, e “as milhares de empresas e de agências governamentais” não fizeram nada para proteger as suas aplicações, mesmo com sérias falhas continuando a existir.

Baseado em dados da unidade de serviços gerenciados da empresa e de outras fontes, a Cenzic afirma que existem entre 100 milhões e 150 milhões de aplicações web online hoje e a absoluta maioria continua vulnerável.

No relatório, há 1.471 vulnerabilidades únicas apontadas pela Cenzic apenas no terceiro trimestre de 2007, com técnicas de cross-site scripting (XSS) e de SQL injection (alterar conteúdo no banco de dados via navegador) como as mais comuns. De todas estas brechas, a empresa afirma que 70% delas são “facilmente exploráveis”.

Quem quiser ler o relatório, pode encontrar ele completo e em inglês aqui.

Usuários Finais causam mais estresse do que hackers!

Um interessante estudo mostra que os gerentes de TI na Austrália estão mais preocupados com o abuso dos usuários finais com os sistemas de tecnologia da informação do que os ataques de hackers e outras ameaças, de acordo com uma nova pesquisa chamada State of Security Report, patrocinada pela Websense, especializada em segurança.

Durante o estudo, que ouviu mais de 158 funcionários e 159 gerentes de TI de companhias australianas com mais de 50 empregados, os gerentes de TI dizem que administrar de forma online os usuários finais é a parte mais frustrante de todo o gerenciamento.

A pesquisa também apurou que 59% das empresas ouvidas não bloqueiam compartilhamento de arquivos peer-to-peer, enquanto 47% não forçam políticas de uso de internet para filtrar aplicações.

A questão de limitações de orçamento foi citada como a segunda maior preocupação, lembrado por 48% dos gerentes de TI, seguido por pouca atenção com segurança (25%) e calma no desenvolvimento (18%).

O mais grupo de profissionais (87%) desenvolve múltiplos filtros URL, com phishing scams listado como a maior ameaça (58%), seguido de spyware (56%) e mensagens instantâneas (51%).

Perda de detalhes bancários (30%) e números de cartões de crédito (20%) são considerados piores do que ter dados da companhia roubados (17%), de acordo com a resposta dos usuários finais.

Entre as respostas, 117 pessoas (74%) da equipe não de TI acreditam que eles podem ser pegos por perda de informações de documentos corporativos ou vendo pornografia, enquanto 100 funcionários (63%) considera a introdução de spyware e vírus uma ofensa liberada.

Os gerentes de TI foram sensivelmente mais tranqüilos, de acordo com a pesquisa. Os funcionários removeram documentos sensíveis chegaram a 90 (56%) dos gerentes de TI, deixando perdas de vírus em redes corporativas (52%) e baixando a pornografia (34%).

Os funcionários e gerentes de TI se confrontam por causa do tempo que perdem os usuários finais usando a internet para questões pessoais. O pessoal de TI afirma que usuários fora de TI gastam 1,5 horas por dia visitando sites de bancos (46%), lendo notícias (39%) e acessando e-mails pessoais de contas de 29% e visitando sites de trabalhos (18%).


Darren Pauli - Computerworld Australia
Visual Studio 2008 e Framework 3.5 released to manufacturing (RTM)

Conforme previsto, e anunciado, acabou de ser liberada a versão final do Visual Studio 2008 e Framework 3.5.
Que presente de Natal!

Com essa nova versão, um grande pacote de novas tecnologias estão sendo lançadas, como LINQ, WCF, WPF, dentre outras que irão nos dar uma grande produtividade e poder de desenvolvimento.

Mais informações, no site do Visual Studio.

Note: Tudo que há de novo no VS2008 será assunto no Tech-Ed 2007

Deployment Crystal Reports Using Merge Modules

Tenho recebido um grande número de questões das listas e nos forúms sobre como distribuir aplicações que possuem relatórios do Crystal Reports no Visual Studio 2005. Devido a isso, gostaria de deixar aqui uma fonte de informação bastante útil, que acredito que possa ajudar quem está precisando:

Quando usamos relatórios do Crystal em aplicações .Net, ao fazer o deploy no cliente, precisamos levar os assemblies do Crystal junto (pois estes não fazem parte do .NET Framework), e isso se aplica em aplicações Web (nesse caso, devemos instalar no servidor) e Windows Forms.

Basicamente o que precisamos fazer é criar um Setup Project para a aplicação, e adicionar nesse projeto um Merge Module do Crystal. Ao compilar esse projeto em modo release e ele vai gerar um arquivo executável para a instalação da aplicação. Instalar esse setup no seu cliente, onde ele vai instalar tudo que o Crystal e sua aplicação precisa para funcionar.

Algumas referencias:
- Download do Merge Module do Crystal para o VS2005 -
Crystal Reports for .NET Framework 2.0 Redistributable Package (x86) – Pois ele não vem por default junto com o VS2005. Inclusive, nesse link, ao baixar o arquivo zip, juntamente com o pacote de instalação há um documento do Word muito bom, ensinando passo a passo como construir projetos de setup em .NET para aplicações com Crystal Reports;

- Mais um
Artigo muito bom que também ensina passo a passo como construir um projeto de setup, incluindo o Merge Module do Crystal;

- Site do representando do Crystal no Brasil (artigos técnicos/downloads);

- Site da Business Objects, que agora fundiu-se com o Crystal (artigos técnicos/downloads).

- Outro post excepcional: 
http://social.msdn.microsoft.com/forums/pt-BR/vsreportingpt/thread/a96182b5-3781-4dbb-9733-65af62d1efec/

 

Espero que esse poste ajude, e forneça as informações necessárias a quem está precisando.
Se alguem tiver mais alguma fonte de informação que possa ser útil aos colegas, sinta-se a vontade para postar em comentários.

:.)

Recuperando a parte decimal de um número

public static decimal getDecimal(decimal pValor) {
    return pValor - Math.Truncate(pValor);
}

Mais Entradas Página seguinte »