У меня есть веб-сайт, на котором я могу открыть exe-файл, используя пользовательскую зарегистрированную схему URI.Этот установщик exe или msi - это winform, который действует как самодостаточный веб-интерфейс API, где он получает параметры от вызова Ajax, сделанного с веб-сайта.
Так что это мой вызов Jquery с веб-сайта:
var appParameters = @Html.Raw(Json.Encode(Model));
$.ajaxSetup({ cache: false });
$.support.cors = true;
$.ajax({
type: 'GET',
url: 'http://localhost:8080/api/parameters/digital',
accepts: 'application/json',
contentType: 'application/x-www-form-urlencoded',
data: appParameters,
success: function () {
window.location.href = "http://localhost:8090/Home/Enroll";
},
onerror: function () {
}
});
И этот вызов сделан для моей winform, которая действует как самодостаточный веб-интерфейс.
Логика хостинга следующая:
var config = new HttpSelfHostConfiguration("http://localhost:8080");
config.EnableCors();
config.Routes.MapHttpRoute(
"API Default",
"api/{controller}/{id}",
new { id = RouteParameter.Optional });
using (HttpSelfHostServer server = new HttpSelfHostServer(config))
{
server.OpenAsync().Wait();
System.Windows.Forms.Application.EnableVisualStyles();
System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
System.Windows.Forms.Application.Run(new MainForm(new ApiValueObserable<AppParameters>()));
}
и это мой удар по ajax:
[HttpGet]
public HttpResponseMessage Digital(string redirectPage, string redirectErrorPage, string responsePage, string successMessage)
{
var appParameter = new AppParameters
{
RedirectPage = redirectPage,
RedirectErrorPage = redirectErrorPage,
ResponsePage = responsePage,
SuccessMessage = successMessage,
};
ApiValueObserable<AppParameters>.Update(appParameter);
return new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK,
Content = null
};
}
После некоторой операции я нажимаю на форме кода сервера winforms, используя следующий код:
var dataBytes = System.Text.Encoding.UTF8.GetBytes(employee.ToString());
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost:51953/Home/Contact");
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
//httpWebRequest.Credentials = CredentialCache.DefaultCredentials;
//httpWebRequest.Credentials = new NetworkCredential("", "");
httpWebRequest.ContentLength = dataBytes.Length;
httpWebRequest.Method = "POST";
Stream dataStream = await httpWebRequest.GetRequestStreamAsync();
dataStream.Write(dataBytes, 0, dataBytes.Length);
dataStream.Flush();
dataStream.Close();
Меня беспокоит то, что мне нужно создать промежуточную страницу обхода при переходе назад от winform квеб-сайт, поскольку я не могу передать учетные данные на веб-сайт, так как он использует « Аутентификация по формам ».Эта промежуточная веб-страница не может извлечь какие-либо переменные сеанса, которые есть на сервере.
Поэтому я хочу знать любые предложения / подходы к логике перенаправления, которые я могу сделать с этой промежуточной веб-страницы на другую веб-страницу, чтобы она получалавсе переменные сеанса или любой другой способ получения переменных сеанса, хранящихся на стороне сервера, через эту промежуточную веб-страницу.
Любая помощь будет полезна.
Заранее спасибо !!! ..