Red de conocimiento informático - Material del sitio web - Cómo convertir un sitio HTTP a HTTPS y preguntas de seguimiento

Cómo convertir un sitio HTTP a HTTPS y preguntas de seguimiento

blogs.com/login.aspx

¿Por qué todavía puedo ver el nombre de usuario y la contraseña en texto claro aquí?

El motivo es: /p/securityswitch/downloads/list Elegí SecuritySwitch v4.2.0.0 - versión Binary.zip

1: Echemos un vistazo al proyecto de prueba

Es necesario iniciar sesión en la carpeta de administración antes de poder acceder a ella. Se puede acceder a login.aspx en admin. Toda la carpeta de administración requiere /a.aspx o /a.aspx.

Comencemos a usar SecuritySwith para implementar lo anterior

Y su baseSecureUri (URL de seguridad básica) es

Entonces, en este momento necesita acceder a un /login. aspx?return=joey accedió, entonces esta

página saltará a /login.aspx?return=joey

--gt;

lt;

lt;añadir ruta="~/contact.aspx"/gt;

lt;añadir ruta="~/admin/login.aspx"/gt;

lt; p>

lt; add path="~/admin" /gt;

lt;!--El administrador aquí no es solo la carpeta de administración, sino que también contiene adminNews similares. .aspx adminQQ. página aspx"--gt;

lt;!--Pero si es ~/admin/, se refiere específicamente a la carpeta de administración--gt;

lt;/pathsgt;

p>

lt;/securitySwitchgt;

lt;!--Configuración SSL 1 final—gt;

lt;appSettings /gt ;

lt ;system.webgt;

lt;compilación debug="true"gt;

lt;/compilationgt;

lt;!-- Inicio de autenticación de ticket integrado --gt;

lt; modo de autenticación="Forms"gt;

lt; admin/login.aspx" proteccion="All" path="/" /gt;

lt;/authenticationgt;

lt;!--Configuración SSL 2 si es IIS <= 6.x, Modo clásico de IIS 7.x --gt;

lt; httpModulesgt;

lt; agregar nombre="SecuritySwitch" type="SecuritySwitch.SecuritySwitchModule, SecuritySwitch " /gt;

lt;/httpModulesgt;

lt;!--Fin de la configuración SSL 2--gt;

lt;/system.webgt ;

lt;!- -Configuración SSL 2 Si es IIS7 ;

lt;modulesgt;

--gt;lt;!-- para. Modo integrado IIS 7.x--gt;lt;!--

lt; add name="SecuritySwitch" type="SecuritySwitch.SecuritySwitchModule, SecuritySwitch" /gt;

lt ;/modulesgt;

p>

lt;/system.webServergt;--gt;

lt;!--Si es el modo integrado IIS7.X Configuración SSL 2 final—gt;

lt ;/configurationgt;

4: Dado que se utiliza la autenticación de ticket integrada, se debe agregar el siguiente código a Global.asax:

protected void Application_AuthenticateRequest(object SENDER, EventArgs e )

{

if (HttpContext.Current.User != null)

{

if (HttpContext.Current.User. Identity.IsAuthenticated)

{

if (HttpContext.Current.User.Identity es FormsIdentity)

{

ID de FormsIdentity = ( FormsIdentity)HttpContext.Current.User.Identity;

FormsAuthenticationTicket tiecket = id.Ticket;

string userData = tiecket.UserData;

string[] roles = userData.Split( ', ');

HttpContext.Current.User = nuevo System.Security.Principal.GenericPrincipal(id, roles);

}

}

}

}

5: Interfaz de inicio de sesión backend admin/login.aspx:

lt @ Page Language=" C#" AutoEventWireup= "true" CodeBehind="login.aspx.cs" Inherits="web.admin.login" gt;

lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transicional//ES ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"gt;

lt;html xmlns="http://www.w3 .org/1999 /xhtml"gt;

lt; head runat="servidor"gt;

lt;titlegt;lt;/titlegt;

lt ;/headgt;

lt; bodygt;

lt; formulario id="form1" runat="servidor"gt;

nombre de usuario: lt; TextBox ID= "txtUser" runat="servidor"gt;lt;/asp:TextBoxgt;lt;br /gt;

Contraseña:lt;asp:TextBox ID="txtPass" runat="servidor" gt;lt ;/asp:TextBoxgt;lt;br

/gt;

Recordar nombre de usuario:lt; asp: CheckBox ID="chkUsername" runat="server" Checked="true"/gt;

lt;br /gt ;

lt;asp:Literal ID="litResult" runat="servidor"gt;lt;/asp:Literalgt;

lt;br /gt;

lt; asp: ID de botón="btnSubmit" runat="servidor" Text="Enviar" onclick="btnSubmit_Click" /gt;

lt;/formgt;

lt ;/ bodygt;

lt;/htmlgt;

Interfaz de inicio de sesión backend cs admin/login.aspx.cs:

usando el sistema;

usando System.Collections.Generic;

usando System.Web;

usando System.Web.UI;

usando System.Web.UI.WebControls;

usando System.Web.Security;

espacio de nombres web.admin

{

inicio de sesión de clase parcial pública: System.Web. Página

{

protegida void Page_Load(objeto remitente, EventArgs e)

{

}

protegida void btnSubmit_Click(objeto remitente, EventArgs e)

{

cadena nombre de usuario = txtUser.Text;

cadena pass = txtPass.Text;

bool ischeck=chkUsername.Checked;

if (nombre de usuario=="admin" amp; pass=="admin")

{

SaveLogin( nombre de usuario, ischeck);

}

}

private void SaveLogin(nombre de usuario de cadena, bool ischeck)

{

HttpCookie cook;

string strReturnURL;

string roles = "admin" //Guarda el ID de usuario del usuario en las cookies, la identidad es la identidad del administrador

//Para hacer referencia usando System.Web.Security;

Ticket FormsAuthenticationTicket = new FormsAuthenticationTicket(

1, nombre de usuario, DateTime.Now, DateTime.Now.AddMinutes (30), ischeck , rol

es);

cook = new HttpCookie("mycook"); //corresponde a los formularios name="mycook" en la autenticación en webconfig

cook.Value = FormsAuthentication.Encrypt ( ticket);

Response.Cookies.Add(cook);

strReturnURL = Request.Params["ReturnUrl"];

if (strReturnURL != nulo )

{

Response.Redirect(strReturnURL);

}

else

{

Respuesta.Redirect("default.aspx");

}

}

}

}