RequestオブジェクトとResponseオブジェクトについて簡単に説明します。
要求:クライアントがWebブラウザーを使用してWebアプリケーションに要求を送信すると、クライアントはクライアント情報をサーバーに送信します。サーバーは、すべてのクエリ文字列パラメーターまたはフォームパラメーター、Cookieデータ、およびブラウザー情報を含むHTTP要求を受信します。
Requestオブジェクトを使用すると、サーバーは主に、Post、GETメソッドを使用してHTMLフォームから渡されたパラメーター、Cookie、ユーザー認証などのクライアントブラウザーのデータを取得できます。RequestオブジェクトはPageオブジェクトのメンバーの1つであるため、プログラムで宣言しなくても直接使用できます。
応答:クライアントの要求に対するWebサーバーの応答をカプセル化し、対応するHTTP情報を操作して結果を要求者に返します。要求と応答の両方に多くの属性とメソッドがあります。最初の認識段階では、ResponseオブジェクトのRedirectメソッドとWriteメソッドのみが使用されます。RequestオブジェクトのフォームとQueryStringコレクション
Responseオブジェクトは言語を使用してデータをクライアントに出力します。これには、データをブラウザーにエクスポートする、ブラウザーを別のURLにリダイレクトする、Cookieファイルをブラウザーにエクスポートするなどが含まれます。
1、
Cookieは実際にはクライアントに保存される小さなテキスト情報(最大4kb)です。クライアントはサーバーをリクエストします。サーバーがユーザーのステータスを記録する必要がある場合、サーバーはその応答を使用してCookieをクライアントのブラウザに発行します。クライアントブラウザはCookieを保存できます。ブラウザが再度Webサイトを要求すると、ブラウザは要求されたURLとCookieをサーバーに送信します。サーバーはCookieをチェックしてユーザーのステータスを識別します。サービスは、必要に応じてCookieの内容を変更することもできます。
2 Cookie関連の属性
3. Cookieによる簡単な認証
システムの使用; System.Collections.Generic;を使用します。 System.Linqを使用します。 System.Webを使用します。 System.Web.Mvcを使用します。 名前空間权限验证.Controllers { パブリッククラスHomeController:Controller { public ActionResult Index() { ViewBag.Title = "Home Page"; //模拟登录 // if(Request.Form ["Type"]。ToString()== "1") Login(); View();を返す } public string GetCookie() { var cookie = Request.Cookies ["UserInfo"]; if(cookie!= null) { return $ "{cookie.Value}"; } return "先にログインしてください"; } public void Login() { //ほとんどのブラウザは4KB前後のcookieデータをサポートし ますstring userName = Request.Form ["UserName"]; string passward = Request.Form ["Passward"]; { if(userName == "hnzheng" && passward == "123") { //作成メソッド1 { HttpCookie httpCookie = new HttpCookie( "UserInfo"); // OK md5暗号化 httpCookie.Value = $ "{userName} | {passward} "; httpCookie.Domain = "localhost "; httpCookie.Expires = DateTime.Now.AddDays(1); //有効期限を設定する Response.Cookies.Add(httpCookie); } //作成方法2 { //Response.Cookies["UserInfo"]["Name "] = userName; //Response.Cookies["UserInfo"]["Passward "] = passward ; //Response.Cookies["UserInfo"].Expires = DateTime.Now.AddDays(1); } } else Response.Write("ユーザー名またはパスワードが間違っています ");; } } var s = Request.Cookies ["ユーザー情報"]; public string LoginOut() { if(s!= null) { //次の文では必須であり、設定は変更によって無効になり、 s.Expires = DateTime.Now.AddDays(-30); Response.Cookies.Add( s); //次のメソッドは無効です //Response.Cookies.Remove("UserInfo "); } return $" Exit Successful "; } } }
フロントエンド:
4.ブラウザのクロスドメインの問題、Cookieは異なるドメイン間で共有されません。たとえば、あなたが知らない2人がお金を共有することはできません。この問題は、ドメインを使用して解決できます。親子ドメインの形式では、すべての子ドメインは親ドメインのCookieを使用します。
以下の例:
メインサイト:www.study.com
ウェブサイト:a.study.com
bウェブサイト:b.study.com
cウェブサイト:c.study.com
上記の3つのWebサイトのCookieは互いに共有されないため、メインサイトのCookieのドメインを ".study.com"に設定できます。
みんながクッキーを使えるように
マスターステーションのCookieを設定します。
(1)3つのブランチA、B、Cがメインステーションの同じCookieに同時にアクセスできるという設定を解決します。この設定はメインステーションで設定されます。
HttpCookie tokenCookie = new HttpCookie( "Name");
tokenCookie.Values.Add( "Value"、Value);
tokenCookie.Domain = ".study.com";
tokenCookie.Path = "/";
tokenCookie.Expires = DateTime.Now.AddDays(365);
Response.AppendCookie(tokenCookie);
(2)変電所のCookieをクリアします。
HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies ["CookieName"];
if(cookie!= Null)
{
cookie.Expires = System.DateTime.Now.AddDays(-1); //期限切れの
Cookieを設定します。 Domain = ".passport.com"; //メインドメイン名を設定します。主にこのステップです
Response.Cookies.Add(cookie); // Cookie設定を適用します
}
上記の3つのステップの後、クロスドメインアクセスとクリアが解決されました。すべてのサイトA、B、CがメインサイトのCookieにアクセスできます。同時に、サイトA、B、CがCookieをクリアしたとき他のサイトが取得するクッキーは無価値です