これはWebサービスメソッドであるコードにCookieを保存する方法です。私はクッキーの有効期限を変更しようとしましたが、まだそれは私のために働いていません。クッキーを書くのにContext.Response
の問題はありますか?それを読むにはContext.Request
ですか?次のページでRequest.Cookies ["cookieName"]はWebサービスメソッドでnullです
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
public FormRootObject getDataFromCookie()
{
FormRootObject form = new FormRootObject();
List<formFielddata> lstFormFieldData = new List<formFielddata>();
var getCookie=Context.Request.Cookies["UserData"];
if (getCookie != null)
{
if (getCookie.Values.Count > 0)
{
foreach (var val in getCookie.Values)
{
formFielddata document = new formFielddata();
if (val.ToString() != "formid")
{
document.id = val.ToString();
document.value = getCookie[val.ToString()];
lstFormFieldData.Add(document);
}
else {
form.formid = getCookie[val.ToString()];
}
}
form.fielddata = lstFormFieldData;
}
}
return form;
}
をこのクッキーを取得するための
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
public void SaveInDraft(FormRootObject _forms)
{
HttpCookie formCookie = new HttpCookie("UserData");
formCookie.Values.Add("formid", _forms.formid);
foreach (var item in _forms.fielddata)
{
formCookie.Values.Add(item.id, item.value);
}
formCookie.Expires = DateTime.Now.AddYears(1);
Context.Response.Cookies.Add(formCookie);
}
が、私のオブジェクトgetCookie
は常にnull
ですが、これは私にとってはうまくいったのですが、要件のユーザーがクッキーを保存してインターネット接続なしでそれらを取り戻すことができるはずですので、javascriptを使用してクッキーを保存する方がいいです。 ](https://stackoverflow.com/questions/14573223/set-cookie-and-get-cookie-with-javascript) –