Archive for the ‘asp.net’ category

Mudar trust level com o appcmd para todas as versões do asp.net

junho 28th, 2016

Aprendi que para mudar o trustLevel de somente um site cadastrado no IIS 8 eu poderia usar o comando abaixo

appcmd set config "site.com.br" -section:system.web/trust /level:"Full" /commit:webroot

Ele faz commit no web.config do framework, e a configuração só vale para site.com.br. A configuração fica tipo isso

<location path="site.com.br">
   <system.web>
       <trust level="Full" />
   </system.web>
</location>

O problema que eu tive foi que o comando alterava o trust level somente para a versão 4 do asp.net, mesmo se o site estivesse utilizando a versão 2.0, era a versão 4 que era alterada. Pesquisando descobri que dá pra informar a versão no final do comando, assim é possível configurar tanto para a versão 2 quanto para a versão 4. O exemplo abaixo configura o trust level para full na versão 2.0 do asp.net.

appcmd set config "site.com.br" -section:system.web/trust /level:"Full" /commit:webroot /clr:2

O site que me ajudou com isso foi esse:
http://weblogs.asp.net/owscott/targeting-the-net-framework-version-and-bitness-in-appcmd

Windows Explorer e Global Assembly Cache (GAC)

julho 8th, 2015

Instalei um windows 2012 R2 e a listagem do %windir%\assembly estava assim

listagem

 

Mas eu queria assim

listagem2OBS: consegui arrumar, mas não consegui dar rollback, como eu queria muito desse jeito, não me importei.

Para alterar criei uma DWORD chamado ViewerAttributes na chave HKLM\SOFTWARE\Microsoft\Fusion com o valor decimal 1445988681 e funcionou. Não precisei reiniciar, só fechei o explorer e abri de novo no diretório e listou direitinho(pra mim é direitinho agora :D)

 

Encriptografar e descriptografar seção no web.config

junho 29th, 2015

1) Abra o prompt de comando
2) Altere o diretório para a versão do asp.net que você usa

cd %windir%\Microsoft.NET\Framework\versao

3) Rode o comando alterando a seção que quer utilizar e o site utilizado

aspnet_regiis -pe "connectionStrings" -app "/" -site "batatinha.com.br"

no exemplo a cima, vamos criptografar a seção “connectionStrings” para a aplicação raiz do site “batatinha.com.br”

4) Abra o web.config do site, verá que haverá algo do tipo

<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
  <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
   xmlns="http://www.w3.org/2001/04/xmlenc#">
   <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
   <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
    <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
     <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
     <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
      <KeyName>Rsa Key</KeyName>
     </KeyInfo>
     <CipherData>
      <CipherValue>n/zynKbSuIPDiyR44df1zZcDJSTfND7qQ8vduh83yEU0GcI+fD3LHdFcAkMZyfHfnsKpfMXf6F3zd4UyDjSJDBduN17xe0COGLyrivFifFtw1VcpRHLwR+z9MF9yVyi9a2Sbj5YO8nU50zJgOnN53GaM5KEZIT0abO2l0koo=</CipherValue>
     </CipherData>
    </EncryptedKey>
   </KeyInfo>
   <CipherData>
    <CipherValue>P4+kFEJ5/rXZp9edsksmVRg/Jo2zZCuHR3103Tooy4AnX+WzawGHuA6HL6+9ULw1s7Wd+TCsfSO74befVnTCuYS6NFMQg+FtMdK0rtey9ryia0lyqccf4CZ4u2U9afqNcO6eN40rPvY8SVG5AbQ37VatWuhs8pu1ZfpN8hQjL3aeM3nXudXcLxU4YUf84oTsHf1Q8hGUDc2mnKQqpfU7jDNhDp8hmobV1Xb3q9DQPxD3k2eCKE+vD1ZXvHK8o7TuioZxv/TXUIX/ewc1pWzH3AdQJUSGhjJHAUUJ7pC4WYdNVwpB32NLokiR3gBOAmClHDqlRVrJ+yzoTZnfonBGPKjQT0q6Kxi5fsQUCRbG9rXe9SrIHGL1G3yE62R2lMO1dx6A+9mLiR3F82bKH5oJrrhmFrTjuCnLaYVhrTtWAWC8CAJ6fs5wk4dKg8fvcVNoIFKkHVyEgf8Wqvf0MRiGwfsob5tTNc15yfUZS5w6AnyWNqHrS1d//WTcJ++G5EXZdkDE7KxiDEisokflrtDIq+VC6zC3zcOH18H4h0UL1L5zlcMdHRvSJ2YlI0k4en1Dm3w05fzFf9Z5Sk7CS+NZjLl2jWT5m3ZBMiGBUORi0NYD8ThHkvuy9AwogQ/T8b+uj9o4Q3HwEqpSDMs0t0T7Izx7ISTan+OH58MgOPZ6Qq1gV/LqcGBTHqeojZzy5frlKTxMWokW2PXexHkyyW6vAEqOzYoXn5ctuuL8VfbQhut3Xlq6wbYD7jZh4gzxJJ1BbpEsGqr8YCRIMkhcju4dzHgHI/ks1dmAwWwOUFVjnsx2ZNrmo4kWk8HaujUybekdcWxstMXB1Jor6EB3dLYgoxQ74oetIAOmHIH93bE17MUEO1Yer9PTy0qU17cXl3EMZX/bGfYlppzh69WeszQ0/63IeBoPaoaWZaLgqMlogDntjdnQWqOA+goiKMSlqv9qWIdjdsZ63Ekhuc1H58qJrjPkJYvVjoGApECgvDtRBN8BcFaflMWzX+GxL0NCvi4poQiuSsD58/j1I0rl4kTUzA499s+uYy8WuX7OVh6gbXzlaSBvqj08+VtA+ewqW8S5bcPQdiG8EjAj1Be6VPc8qJb43H9JJF/8BtQ7ve+w=</CipherValue>
   </CipherData>
  </EncryptedData>
 </connectionStrings>

Feito 😀

Para descriptografar, faça o seguinte:

1) Abra o prompt de comando
2) Altere o diretório para a versão do asp.net que você usa

cd %windir%\Microsoft.NET\Framework\versao

3) Rode o comando alterando a seção que quer utilizar e o site utilizado

aspnet_regiis -pd "connectionStrings" -app "/" -site "batatinha.com.br"

No exemplo a cima vamos descriptografar a seção “connectionStrings” para a aplicação raiz do site “batatinha.com.br”

Créditos: https://support.transfrm.com/entries/27430158-Encrypting-Decrypting-the-database-connection-strings-in-web-3-0

Alterar level trust somente para um site

janeiro 29th, 2015

Caso seu servidor trabalhe em partial trust e com allowOverride = false, é possível configurar o modo full trust para um único site, para isso é necessário entrar em contato com o seu host e solicitar que insira as linhas abaixo, antes da tag </configuration>, no web.config do asp.net.

    <location path="%VHOST%">
        <system.web>
            <trust level="Full" />
        </system.web>
    </location>

Onde %VHOST% é o nome cadastrado para o seu site no IIS do servidor. Com essa configuração o servidor continua trabalhando em partial trust com exceção do site informado em %VHOST% 🙂
Algumas empresas de hospedagem não aceitam essa configuração, mas não custa nada dar uma chorada 😛

Conversão de .doc ou .docx para .pdf no asp.net com Microsoft.Office.Interop.Word

setembro 11th, 2014

Conseguiu utilizar o Microsoft.Office.Interop.Word? Que bom, não conseguiu? Então desista, não perca horas e horas tentando fazer funcionar dando permissões diferentes na config DCOM para o Documento do microsoft office word, pois a própria microsoft não recomenda o componente para a utilização de sistemas em asp ou asp.net, conforme o link abaixo:

http://support.microsoft.com/kb/257757

A Microsoft atualmente não recomenda e não oferece suporte, aplicativos de automação do Microsoft Office de qualquer aplicativo cliente autônomo, não interativo ou componente (incluindo ASP, ASP.NET, DCOM e serviços NT), como o Office pode apresentar comportamento instável e/ou bloqueio quando o Office é executado nesse ambiente.”
» Read more: Conversão de .doc ou .docx para .pdf no asp.net com Microsoft.Office.Interop.Word

Exemplo de sessão no ASP.NET

agosto 21st, 2014

Crie os respectivos arquivos index.aspx.cs e index.aspx
Abaixo o index.aspx.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
public partial class index : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
 
    protected void btnCreateSession_Click(object sender, EventArgs e)
    {
        Session["Username"] = txtUserName.Text.Trim();
    }
 
    protected void btnRetrieveSession_Click(object sender, EventArgs e)
    {
        DisplaySessionValue();
    }
 
    protected void btnRemoveSession_Click(object sender, EventArgs e)
    {
        Session.Remove("Username");
 
        DisplaySessionValue();
    }
 
    protected void btnRemoveAll_Click(object sender, EventArgs e)
    {
        Session.RemoveAll();
 
        DisplaySessionValue();
    }
 
    private void DisplaySessionValue()
    {
        if (Session["Username"] != null)
            lblSessionValue.Text = Convert.ToString(Session["Username"]);
        else
            lblSessionValue.Text = "No Value has been stored in session";
    }
}

Abaixo o index.aspx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="index" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>ASP.net How to use session</title>
    <style type="text/css">
     .txtInput
     {
         width:250px; height:28px; paddiang:3px;
     }   
     div
     {
         margin:5px;
     }
     .validator
     {
         color:Red;
     }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
         <fieldset>
            <h3>How to use Session</h3>
            <div>
            Userame:<br />
            <asp:TextBox ID="txtUserName" runat="server" MaxLength="50"></asp:TextBox>
            <asp:RequiredFieldValidator ID="rfvFirstName" runat="server" Display="Dynamic"
             CssClass="validator"  ControlToValidate="txtUserName"
             ErrorMessage="Username is required"></asp:RequiredFieldValidator>
            </div>
            <div>
                <asp:Button ID="btnCreateSession" runat="server" 
                    Text="Click to Create Session" onclick="btnCreateSession_Click" />
                &nbsp;
                <asp:Button ID="btnRetrieveSession" runat="server" CausesValidation="false" 
                    Text="Click to Retrieve Session Value" onclick="btnRetrieveSession_Click" />
                &nbsp;
                <asp:Button ID="btnRemoveSession" runat="server" CausesValidation="false" 
                    Text="Click to Remove Session Value" onclick="btnRemoveSession_Click" />
                &nbsp;
                <asp:Button ID="btnRemoveAll" runat="server" CausesValidation="false" 
                    Text="Click to Remove All Sessions" onclick="btnRemoveAll_Click" />
            </div>
            <p>
                Note: 1st create a session by providing user name in text field, then you can retrieve the value from session.
            </p>
            <div>
                Value stored in Session: 
                <strong><asp:Label ID="lblSessionValue" runat="server"></asp:Label></strong>
            </div>
        </fieldset>
    </div>
    </form>
</body>
</html>

Instalando RIA Services

fevereiro 17th, 2014

Execute após ter feito o download

1
msiexec /i RIAServices.msi SERVER=true

Fonte: http://blogs.msdn.com/b/deepm/archive/2010/03/15/are-you-a-hoster-and-want-to-support-ria-services.aspx

Isapi Rewrite não funciona com ASP.NET 4

junho 8th, 2012

É, realmeante não funcionar se tu estiver usando o IIS 6. Se tu tá usando, vai ter problemas, ele vai redirecionar para o arquivo eurl.axd, não vai encontrar e o redirecionamento não vai funcionar. Pra solucionar isso tu vai ter que criar uma chave no registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0 do tipo DWORD chamada EnableExtensionlessUrls, dê o valor 0 para ela, reinicie o IIS e teste novamente.

Limite de upload no asp.net

janeiro 25th, 2012

Tem um sistema de upload em aspx e tu não consegue fazer upload de arquivos com mais de 5MB? No problem, é possível configurar o limite de upload no asp.net pelo arquivo de configuração dele, o web.config, então faz o seguinte, adiciona essa linha aí dentro da tag <system.web> com o tamanho máximo de upload que tu quer, lembrando que o valor é medido em KB.

<httpRuntime maxRequestLength=”15360″/>

Nesse exemplo o limite de upload na aplicação foi alterado para 15MB

Feito com base nesse link