Есть ли причина, по которой вы не используете HTTPS и не отправляете форму непосредственно на сайт B?
<form action="https://siteb/someaction" method="POST">
<input type="text" name="key1" value="value1" />
<input type="text" name="key2" value="value2" />
<input type="text" name="key3" value="value3" />
<input type="submit" value="Go ahead" />
</form>
Если есть какая-либо причина в том случае, если вы шифруете значения в один скрытый ввод и отправляете форму, содержащую это скрытое поле, с использованием JavaScript, на сайт будет отправлено только значение скрытого поля.B. Так, например, если бы у вас была следующая форма:
<form action="http://siteb/someaction" method="POST">
<input type="hidden" name="encrypted" value="some encrypted value" />
</form>
на сайте B, вы могли бы получить зашифрованное значение следующим образом (не используйте FormCollection, это несколько уродливо по сравнению с моделями представления):
[HttpPost]
public ActionResult SomeAction(string encrypted)
{
// TODO: decrypt the encrypted value here to get the orginal string
...
}
И еще более элегантный способ - это определить модель представления, определенную на сайте B, и пользовательский механизм связывания модели для этой модели, который будет выполнять дешифрование, чтобы действие выглядело просто так:
[HttpPost]
public ActionResult SomeAction(SomeViewModel model)
{
// Directly use the model with all the fields in it.
// The custom model binder will take care of the creating it
// from the encrypted request string
...
}