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);
}
} p>
}
}
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
{ p >
Respuesta.Redirect("default.aspx");
}
}
}
} p >