У меня есть пользователи, которые будут направлены в мое приложение с внешнего сайта, и во время этого перенаправления адреса электронной почты пользователя будут отправлены мне по HTTP POST.ASP.NET HTTP POST и перенаправление
То, что я пытаюсь выполнить, - это получить адрес электронной почты пользователя и отправить его пользователю в представление индекса.
У меня есть следующие методы:
[HttpGet]
public ActionResult Index()
{
string email = "";
string[] keys = Request.Form.AllKeys;
for (int i = 0; i < keys.Length; i++)
{
Response.Write(keys[i] + ": " + Request.Form[keys[i]] + "<br>");
System.Diagnostics.Debug.WriteLine(keys[i] + ": " + Request.Form[keys[i]]);
email = Request.Form[keys[i]].ToString();
}
return Index(email);
}
[HttpPost]
public ActionResult Index(string email)
{
return View();
}
И это метод, который я должен имитировать работу внешнего сайта, который перенаправление пользователя на мой взгляд, с адресом электронной почты пользователя.
public ActionResult Httppost()
{
using (var wb = new WebClient())
{
var data = new NameValueCollection();
data["email"] = "[email protected]";
var response = wb.UploadValues("http://localhost:57695/Home/Index", "POST", data);
}
return RedirectToAction("Index");
}
Проблема заключается в том, индекс никогда не получает адрес электронной почты из моего метода HttpPost(), и электронная почта всегда получали, как «». Как получить электронное письмо от Httppost() в Index()?
Благодарим вас за разъяснение. Теперь я понимаю. Тем не менее, решение, которое вы предоставили, привело меня к тому, что строка URL была следующей: http: // localhost: 57695 /? Email = test% 40email.com. Мне нужно избегать пользователей, манипулирующих электронной почтой через строку запроса. Это можно сделать? – dexter
На самом деле, мне нужно отправить электронное сообщение как HTTP-сообщение, а не через вызов метода. Итак, верните RedirectToAction («Индекс», новый {email = "[email protected]"}); не выполняет требования, которые я считаю. – dexter
@ UğurDinç: Сообщение должно поступать от клиента, а не от сервера. Вам понадобится форма в представлении, в которой сообщения отображаются на целевой URL, а не на перенаправление. Также обратите внимание, что пользователи могут манипулировать почтовыми данными почти так же легко, как данные строки запроса. Если вам нужно, чтобы данные были «безопасными» в некотором роде, вам нужно сохранить его на стороне сервера, возможно, в сеансе или что-то в этом роде. – David