ASP.NET - Receber dados HTTP POST em formulários loginUrl de autenticação (a partir de um aplicativo externo)

StackOverflow https://stackoverflow.com/questions/1895672

Pergunta

eu preciso passar alguns dados de um aplicativo ASP clássico para o meu aplicativo ASP.NET usando o método POST (não pode usar GET sorry) em um formulário.

Este não parece trabalho se minha ação é a página de destino aspx, mas meu aplicativo ASP.NET é usando a autenticação de formulários, porque parece que em algum lugar do gasoduto meus dados é perdido, uma vez que a coleção Request.Form é nulo no método Page_Load da minha página de login.

Se a autenticação desativo formas, a página de destino recebe os dados postados sem nenhum problema.

Você sabe como eu posso trabalhar em torno deste problema? Quando ou onde eu poderia obter esses dados?

Agradecemos antecipadamente!

Foi útil?

Solução

Uma possibilidade poderia ser a de transferir os cabeçalhos postados em um objeto de sessão a manter em seu lado ASPX que seria, então, matou uma vez que sua finalidade é completa.

void Session_Start(object sender, EventArgs e) 
{
    // Code that runs when a new session is started
    SortedList sList = new SortedList();
    foreach (string key in HttpContext.Current.Request.Form.Keys)
    {
        sList.Add(key, HttpContext.Current.Request.Form[key]);
    }
    Session.Add("myList", sList);

}

Outras dicas

pode simplesmente desproteger a única página que é o alvo do POST?

Em seu web.config:

<configuration>
  <location path="MyPostHandlingPage.aspx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
</configuration>

A 2 maneira possível para transferir dados entre asp para ASPX é

  1. usando Session, Via SQL DB (Ref http:. / /msdn.microsoft.com/en-us/library/aa479313.aspx

  2. Usando QueryString em uma página ASP intermediário como abaixo.

Seu primeiro página ASP: Sample.asp

<% language="VBScript"%>
<html>
<head>
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" action="process.asp" method="post">
    <div>
        &nbsp;<input name="Text1" id="Text1" type="text" />
        <input id="Submit2" type="submit" value="submit" /></div>
    </form>
</body>
</html>

Sua página Intermediate: process.asp

<%@ language="vbscript"%>
<html>
<head>
    <title>Untitled Page</title>
</head>
<body>
    <form id="form2">
    <%response.Write(Request.Form("Text1"))
     %>
    <%response.Redirect("default3.aspx?icontent=" & Request.Form("Text1"))  %>
    </form>
</body>
</html>

Sua página de código ASPX: Default.aspx

public partial class Default3 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(Request.QueryString["icontent"].ToString());
    }

}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top