Question: It is possible to have a control that would proxy requests to another domain/Web site, including postback?

In this control, you would specify the URL you wanted to execute, and whenever the control executed, it would make a GET request to this other URL, and render the HTML return. (This part is not hard.)

However, when the page is posting back, it would make a POST request, with all of its postback variables intact, to this other page.

I'm really looking for a blind proxy. Some control that will take the incoming request and throw it another URL, and render the results. The other page would really have no idea it wasn't interacting with a human.

I want to think I could develop this, but I can't be the first person who wants to do it, so there has to be some reason why Google isn't revealing the solution to me. I suspect I'm going to run into the same Big Problem that anyone else with this idea has run into.

Answer: 
You need to add a parameter to specify that you also want to receive data back from the OpenID request. 

I append the following to my OpenID requests to get the email details.

```
&openid.ns.ax=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ax.mode=fetch_request&openid.ax.type.email=http://axschema.org/contact/email&openid.ax.required=email

```

The first part specifies the namespace being used for the extended data. 

The second part specifies that we are making a fetch request for the data.

The third part specifies the schema we are using for the email.

And the final part is specifying that we require the email to be returned.

I have tested this with Google and it works fine. I do not have the other accounts, so have not tested it for those.

OAuth and Facebook Graph API will have there own formats, so I am not sure on those ones.
Seemingly lightopenid provides a method for that:

```
$openid->validate();
$userinfo = $openid->getAttributes();  // associative array

```

It returns either SimpleReg or "Attribute Exchange" data. But only if the user agreed to that, I would hope.