Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cintiadel

Erro: Um valor possivelmente perigoso Request.Form

Recommended Posts

Tenho uma aplicação onde tenho um textbox multiline e um botão cadastrar, ao clicar em cadastrar o texto é inserido no banco de dados.

Para inseri-lo no banco exatamente como foi digitado, inclusive com os enters, coloquei o seguinte codigo na aplicação para substituir os enters por br:

Dim sb As New StringBuilder(txt_aviso.Text.Trim())
		sb.Replace(System.Environment.NewLine, "<BR>")
O que acontece que em uma outra pagina onde eu possuo um gridview, que exibe esses dados, ao clicar em editar ele me apresenta o seguinte erro:

Um valor possivelmente perigoso Request.Form foi detectado no cliente (GridView1$ctl02$txt_aviso="aviso1<br> bla1 bla2 bla3 ..."). 
Descrição: A validação de solicitação detectou um valor de entrada de cliente possivelmente perigoso e o processamento da solicitação foi anulado. Esse valor pode indicar uma tentativa de comprometer a segurança do aplicativo, como um ataque de script em diferentes locais. Você pode desativar a validação de solicitação definindo validateRequest=false na diretiva Page ou na seção de configuração . No entanto, nesse caso, é altamente recomendável que o aplicativo verifique explicitamente todas as entradas. 

Detalhes da Exceção: System.Web.HttpRequestValidationException: Um valor possivelmente perigoso Request.Form foi detectado no cliente (GridView1$ctl02$txt_aviso="aviso1<br> bla1 bla2 bla3 ...").
se eu colocar validateRequest=false na diretiva da pagina, para de dar o erro, mas em compensação não grava e nem exibe o texto da forma gravada.

o que eu preciso seria mais ou menos o q é feito aqui com a postagem, exibição e alteração dos topicos, a diferença q serao exibidos e editados num gridview.

conto com ajuda de vcs...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode colocar aqui o código do evento RowEditing?

Outra coisa, na coluna que tem esse campo, adiciona essa propriedade:

HtmlEncode="false"
Isso vai fazer com que o <br/> seja interpretado como um código html e vai colocar os espaços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode colocar aqui o código do evento RowEditing?

Outra coisa, na coluna que tem esse campo, adiciona essa propriedade:

HtmlEncode="false"
Isso vai fazer com que o <br/> seja interpretado como um código html e vai colocar os espaços.
n tem nda nesse evento, fiz pela parte visual

segue o codigo do gridview:

<asp:GridView ID="GridView1" runat="server" 
					AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" 
					DataKeyNames="id" DataSourceID="sqlAviso" ForeColor="#333333" 
					PageSize="15" style="font-size: x-small; font-family: Verdana" 
					Width="100%" BorderColor="Silver" BorderStyle="Solid">
					<RowStyle BackColor="#EFF3FB" HorizontalAlign="Left" />
					<Columns>
						<asp:BoundField DataField="id" HeaderStyle-HorizontalAlign="Left" 
							HeaderText="Código" InsertVisible="False" ReadOnly="True" 
							SortExpression="id">
						<HeaderStyle HorizontalAlign="Left" />
						</asp:BoundField>
						<asp:TemplateField HeaderStyle-HorizontalAlign="Left" 
							HeaderText="Descrição">
							<EditItemTemplate>
								<asp:TextBox ID="txt_aviso" runat="server" TextMode="MultiLine" 
									Text='<%# Bind("descricao") %>' Height="80px" Width="100%" /></asp:TextBox>
							</EditItemTemplate>
							<ItemTemplate>
								<asp:Label ID="Label1" runat="server" Text='<%# Bind("descricao") %>'></asp:Label>
							</ItemTemplate>
							<HeaderStyle HorizontalAlign="Left" />
						</asp:TemplateField>
						<asp:TemplateField HeaderText="Excluir" ShowHeader="False">
							<ItemTemplate>
								<asp:ImageButton ID="btn_delete" runat="server" CausesValidation="False" 
									CommandName="Delete" ImageUrl="excluir.jpg" 
									OnClientClick="return confirm('Deseja apagar este veículo?')" Text="" />
							</ItemTemplate>
						</asp:TemplateField>
						<asp:CommandField ButtonType="Image" CancelImageUrl="cancelar.jpg" 
							EditImageUrl="editar.jpg" HeaderText="Editar" ShowEditButton="True" 
							UpdateImageUrl="atualizar.jpg" />
					</Columns>
					<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
					<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
					<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
					<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" 
						HorizontalAlign="Left" />
					<EditRowStyle BackColor="#2461BF" />
					<AlternatingRowStyle BackColor="White" />
				</asp:GridView>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça ao contrário então, grave no banco de dados sem os <br/>.

Insira os <br/> somente quando ele entrar na tela, no evento RowDataBound da grid você troca NewLine por <br/>.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça ao contrário então, grave no banco de dados sem os <br/>.

Insira os <br/> somente quando ele entrar na tela, no evento RowDataBound da grid você troca NewLine por <br/>.

e como vou saber onde a pessoa teclou o enter se n gravar no banco???

como faço pra q seja apresentada uma caixa assim como a do forum onde posso inserir link, imagem, e etc, bem como formatar???

acho q vai atender mais a minha necessidade, pois pode ocorrer da pessoa ter q colocoar link, e etc

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esses componentes que você pode adicionar links, cores etc, são chamados de Rich Textbox.

Nunca precisei usar um em .Net, mas procura por esse nome que você deve achar alguma coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esses componentes que você pode adicionar links, cores etc, são chamados de Rich Textbox.

Nunca precisei usar um em .Net, mas procura por esse nome que você deve achar alguma coisa.

to pesquisando, e vou tentar fazer como você me disse, se algum do moderador do forum souber como faço 'Rich Textbox' em asp net agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.