Deixe-me falar brevemente sobre os objetos Request e Response:
Solicitação: quando um cliente envia uma solicitação a um aplicativo Web usando um navegador da Web, o cliente envia as informações do cliente ao servidor. O servidor recebe uma solicitação HTTP, incluindo todos os parâmetros da cadeia de consulta ou parâmetros do formulário, dados do cookie e informações do navegador.
O objeto Request permite principalmente que o servidor obtenha alguns dados do navegador do cliente, incluindo os parâmetros, cookies e autenticação do usuário transmitidos a partir do formulário HTML usando o método Post ou GET. Como o objeto Request é um dos membros do objeto Page, ele pode ser usado diretamente sem nenhuma declaração no programa.
Resposta : Encapsula a resposta do servidor da Web à solicitação do cliente, usada para manipular as informações correspondentes HTTP e retorna o resultado ao solicitante.A solicitação e a resposta têm muitos atributos e métodos. Durante o estágio de reconhecimento inicial, apenas os métodos Redirecionar e Gravar do objeto Resposta serão utilizados. Coleção Form e QueryString do objeto Request
O objeto Response usa o idioma para gerar dados para o cliente, incluindo exportar dados para o navegador, redirecionar o navegador para outra URL ou exportar o arquivo de cookie para o navegador.
1 、
Cookie é na verdade um pequeno pedaço de informação de texto (até 4kb), que é salva no cliente. O cliente solicita o servidor.Se o servidor precisar registrar o status do usuário, ele usará a resposta para emitir um cookie no navegador do cliente. O navegador do cliente pode salvar cookies. Quando o navegador solicita o site novamente, ele envia o URL solicitado juntamente com o cookie para o servidor. O servidor verifica o cookie para identificar o status do usuário. O serviço também pode modificar o conteúdo dos cookies conforme necessário.
2 atributos relacionados ao cookie
3. Autenticação simples através de cookies
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace Con 验证 .Controllers { public class HomeController: Controller { public ActionResult Index () { ViewBag.Title = "Home Page"; // 模拟 ( // if (Request.Form ["Type"]. ToString () == "1") Login (); retornar View (); } public string GetCookie () { var cookie = Request.Cookies ["UserInfo"]; if (cookie! = null) { return $ "{cookie.Value}"; } return "Por favor faça login primeiro"; } public void Login () { // A maioria dos navegadores suporta dados de cookies em torno de 4KB string userName = Request.Form ["UserName"]; string passward = Request.Form ["Passward"]; { if (userName == "hnzheng" && passward == "123") { // Método de criação 1 { HttpCookie httpCookie = new HttpCookie ("UserInfo"); // OK md5 Criptografar httpCookie.Value = $ "{nome_do_usuário} | {passante} "; httpCookie.Domain = "localhost "; httpCookie.Expires = DateTime.Now.AddDays (1); // Defina o tempo de expiração Response.Cookies.Add (httpCookie); } // Método de criação 2 { //Response.Cookies["UserInfo""["Name "] = userName; //Response.Cookies["UserInfo"[Passward "] = passageiro; //Response.Cookies["UserInfo"ingerie.Expires = DateTime.Now.AddDays (1); } } else Response.Write (" Nome de usuário ou senha incorretos ") ;; } } sequência pública LoginOut () { var s = Request.Cookies ["Informação de usuário"]; if (s! = null) { // A frase a seguir deve ter, a configuração é inválida por modificação e não pode ser removida com a remoção s.Expires = DateTime.Now.AddDays (-30); Response.Cookies.Add (s); // O método a seguir é inválido //Response.Cookies.Remove("UserInfo "); } retorna $" Exit com sucesso "; } } }
Front end:
4. Problemas entre domínios do navegador, os cookies não são compartilhados entre domínios diferentes, como duas pessoas que você não conhece, o dinheiro não pode compartilhar. Este problema pode ser resolvido com a ajuda do domínio. Na forma de domínios pai-filho, todos os domínios filhos usam o cookie do domínio pai.
Os seguintes exemplos:
Site principal: www.study.com
um site: a.study.com
b site: b.study.com
site c: c.study.com
Os cookies dos três sites acima não são compartilhados entre si, portanto, o domínio do cookie do site principal pode ser definido como ".study.com"
Para que todos possam usar cookies,
Defina o cookie da estação principal:
(1) Resolva a configuração em que três filiais A, B e C podem acessar o mesmo cookie da estação principal ao mesmo tempo, a configuração é definida na estação principal
HttpCookie tokenCookie = new HttpCookie ("Nome");
tokenCookie.Values.Add ("Valor", Valor);
tokenCookie.Domain = ".study.com";
tokenCookie.Path = "/";
tokenCookie.Expires = DateTime.Now.AddDays (365);
Response.AppendCookie (tokenCookie);
(2) Limpar cookies nas subestações:
Cookie HttpCookie = System.Web.HttpContext.Current.Request.Cookies ["CookieName"];
if (cookie! = Null)
{
cookie.Expires = System.DateTime.Now.AddDays (-1); // Definir
cookie expirado . Domain = ".passport.com"; // Defina o nome do domínio principal, principalmente nesta etapa
Response.Cookies.Add (cookie); // Aplicar configurações de cookies
}
Após as três etapas acima, o acesso e a limpeza entre domínios foram resolvidos. Qualquer site A, B e C pode acessar o cookie do site principal. Ao mesmo tempo, quando qualquer site A, B e C tiver limpado o cookie, Os cookies que outros sites receberão são inúteis