| Michel's profileEspaço de MichelBlogListsNetwork | Help |
Espaço de Michel |
|||||
|
February 12 Validação de formulário separadas por grupo - ValidationGroup PropertyNeste exemplo, vou mostrar uma maneira de como criar validações separadas por grupo no mesmo formulário utilizando ASP.NET 2.0. Para cada controle de validação existe a propriedade ValidationGroup, que nos permite separar as validações no mesmo formulários utilizando botões diferentes para disparar a validação. Seguem abaixo os controles utilizados e valores de cada propriedade: rfvCampoIndependente txtArea1 rfvArea1
btnValidarArea1
txtArea2
rfvArea2
btnValidarArea2
btnValidade vsIndependente
vsArea1 vsArea2 Código Fonte HTML já com os controles e propriedades: <table width="400"> <tr> <td align="right" bgcolor="#f7f7f7" class="form"> Campo Independente:</td> <td bgcolor="#f7f7f7"> <asp:TextBox ID="txtCampoIndependente" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfvCampoIndependente" runat="server" ControlToValidate="txtCampoIndependente" ErrorMessage="Campo independente é necessário">*</asp:RequiredFieldValidator></td> </tr> <tr> <td bgcolor="#f7f7f7"> </td> <td bgcolor="#f7f7f7"> </td> </tr> <tr> <td align="center" bgcolor="#f7f7f7" class="form"> ÁREA 1</td> <td align="center" bgcolor="#f7f7f7" class="form"> ÁREA 2</td> </tr> <tr> <td align="center" bgcolor="#f7f7f7"> <asp:TextBox ID="txtArea1" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfvArea1" runat="server" ControlToValidate="txtArea1" ErrorMessage="Campo da área 1 é necessário" ValidationGroup="area1">*</asp:RequiredFieldValidator></td> <td align="center" bgcolor="#f7f7f7"> <asp:TextBox ID="txtArea2" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfvArea2" runat="server" ControlToValidate="txtArea2" ErrorMessage="Campo da área 2 é necessário" ValidationGroup="area2">*</asp:RequiredFieldValidator></td> </tr> <tr> <td align="center" bgcolor="#f7f7f7"> <asp:Button ID="btnValidarArea1" runat="server" Text="Validar Área 1" ValidationGroup="area1" /></td> <td align="center" bgcolor="#f7f7f7"> <asp:Button ID="btnValidarArea2" runat="server" Text="Validar Área 2" ValidationGroup="area2" /></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td align="center" colspan="2" bgcolor="#f7f7f7"> <asp:Button ID="btnValidade" runat="server" Text="OK" /> <br /> <asp:ValidationSummary ID="vsIndependente" runat="server" CssClass="aviso" /> <asp:ValidationSummary ID="vsArea1" runat="server" CssClass="aviso" ValidationGroup="area1" /> <asp:ValidationSummary ID="vsArea2" runat="server" CssClass="aviso" ValidationGroup="area2" /> </td> </tr> </table> Determinando permissão FullTrust para aplicações .net remotas - Setting FullTrust with CasPol.exeQuando uma aplicações windows forms é publicada em um servidor da rede, e necessita que os usuários acessem essa aplicação, por padrão o framework do cliente não tem permissão para executar todos os recursos da aplicação remota! Por exemplo, quando a aplicação acessa o banco de dados SQL Server.
Este erro ocorre quando o usuário cliente da rede tenta acessar a aplicação remota que necessita de permissão para executar o System.Data.SQLClient:
System.Exception: BBL: Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. Como solução, existe a ferramenta Code Access Security Policy Tool (Caspol.exe) onde os administradores podem alterar as políticas de segurança para:
-machine policy level -user policy level
-enterprise policy level O Caspol.exe encontra-se na pasta do framework
C:\WINDOWS\Microsoft.NET\Framework\Versão do Framework\CasPol.exe Para determinar permissão FullTrust para as aplicações da rede, execute o seguinte comando:
CasPol.exe -q -m -ag All_Code -zone Intranet FullTrust Será apresentado a seguinte resposta: Grupo de códigos de união adicionado com a condição de associação "-zone" ao nível Machine. Êxito Após essa mensagem, sua aplicação terá permissão de execução FullTrust ! November 22 Consumindo Web Services no ASP Classic 3.0Muitas vezes você encontra projetos feitos no "ASP Classic"(Nao .net) funcionando perfeitamente que nao sera migrado para .NET. Seu gerente solicita uma alteração e voce tem de consumir um método web service .NET. Muitos desenvolvedores estão acostumados em consumir métodos Web Services em projetos feitos na plataforma .NET. Para aqueles que necessitam consumir métodos em uma linguagem nao .NET, mostrarei um exemplo passo a passo:
Neste exemplo, será utilizado ASP Classic para o desenvolvimento da página, e framework 2.0 para o web service. Primeiro, vamos criar o Web Service. Abra o Microsoft Visual Studio 2005 e inicie um novo projeto como na figura 1. File > New Projet - Selecione o template "ASP.NET Web Service Application" e coloque o nome da sua aplicação. Abra o Solution Explorer para renomear o arquivo "Service1.asmx" para "ws.asmx" como na figura 2
Figura 2 Clique com o botão direto sobre o arquivo "ws.asmx" e acesse o código fonte igual na figura 3 Figura 3 Importar a biblioteca System.Data e adicionar o método abaixo na classe do seu serviço. Esse método exemplo é necessário informar um parâmetro "fornecedorID", para retornar o DataSet com 1 datatable, e 1 registro. <WebMethod(Description:="Método que retorna um dataset")> _ Public Function ResgataDados(ByVal FornecedorID As Int32) As DataSet Dim dtsDados As New DataSet("dtsDados") 'Cria dataset dtsDados.Tables.Add("dtProdutos") 'Adiciona datatable 'Adiciona colunas
dtsDados.Tables("dtProdutos").Columns.Add("FornecedorID", GetType(Integer)) dtsDados.Tables("dtProdutos").Columns.Add("ProdutoID", GetType(Integer)) dtsDados.Tables("dtProdutos").Columns.Add("Descricao", GetType(String)) dtsDados.Tables("dtProdutos").Columns.Add("Estoque", GetType(Integer)) 'Cria registro
Dim dr As DataRow dr = dtsDados.Tables(0).NewRow dr("FornecedorID") = FornecedorID dr("ProdutoID") = 1010 dr("Descricao") = "Descrição do produto" dr("Estoque") = 20 'Adiciona o novo registro no datatable 'dtProdutos' do dataset
dtsDados.Tables(0).Rows.Add(dr) Return dtsDados
End Function O código ficará assim:
Imports System.Web Imports System.Web.Services Imports System.Web.Services.Protocols Imports System.Data <WebService(Namespace:="http://tempuri.org/")> _ <WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Public Class Service Inherits System.Web.Services.WebService <WebMethod(Description:="Método que retorna um dataset")> _ Public Function ResgataDados(ByVal FornecedorID As Int32) As DataSet Dim dtsDados As New DataSet("dtsDados") 'Cria dataset dtsDados.Tables.Add("dtProdutos") 'Adiciona datatable 'Adiciona colunas dtsDados.Tables("dtProdutos").Columns.Add("FornecedorID", GetType(Integer)) dtsDados.Tables("dtProdutos").Columns.Add("ProdutoID", GetType(Integer)) dtsDados.Tables("dtProdutos").Columns.Add("Descricao", GetType(String)) dtsDados.Tables("dtProdutos").Columns.Add("Estoque", GetType(Integer)) 'Cria registro Dim dr As DataRow dr = dtsDados.Tables(0).NewRow dr("FornecedorID") = FornecedorID dr("ProdutoID") = 1010 dr("Descricao") = "Descrição do produto" dr("Estoque") = 20 'Adiciona o novo registro no datatable 'dtProdutos' do dataset dtsDados.Tables(0).Rows.Add(dr) Return dtsDados End Function End Class Agora vamos testar seu web service.
DEBUG > Start Debugging ou pressine a tecla F5 Será apresentada a descrição do seu serviço como na figura 4 Figura 4 Clique sobre o método "ResgataDados", informe um número de fornecedorid inteiro e depois em clique em "chamar" invocando seu método. Figura 5 Figura 5 O retorno XML do método deve ser igual a figura 6: Figura 6 Na descrição do método, é apresentado o "envelope XML". Esse envelope, é o XML padrão que devemos formatar no ASP, e mandar para o nosso método no web service, e assim o método será invocado obtendo o resultado esperado. Figura 7 Figura 7 Artigo incompleto! |
||||
|
|