Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En la lista siguiente se describe el hardware, el software, la infraestructura de red y los Service Pack recomendados que necesitar: Microsoft Visual Studio .NET Microsoft SQL Server Servicios de Microsoft Internet Information Server (IIS) 5.0 o posterior
Crear una tabla de base de datos de ejemplo para almacenar detalles de los usuarios
En esta seccin se muestra cmo crear una base de datos de ejemplo para almacenar el nombre de usuario, la contrasea y la funcin para los usuarios. Necesitar la columna de funcin si desea almacenar las funciones de usuario en la base de datos e implementar la seguridad basada en funciones. 1. En el men Inicio de Windows, haga clic en Ejecutar y escriba notepad para abrir el Bloc de notas. 2. Resalte el cdigo de secuencia de comandos SQL siguiente, haga clic con el botn secundario del mouse (ratn) en el mismo y, a continuacin, haga clic en Copiar. En el Bloc de notas, haga clic en Pegar en el men Edicin para pegar el cdigo siguiente: if exists (select * from sysobjects where id = object_id(N'[dbo].[Users]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Users] GO CREATE TABLE [dbo].[Users] ( [uname] [varchar] (15) NOT NULL , [Pwd] [varchar] (25) NOT NULL , [userRole] [varchar] (25) NOT NULL , ) ON [PRIMARY] GO ALTER TABLE [dbo].[Users] WITH
NOCHECK ADD
NONCLUSTERED
[unam
3. Guarde el archivo como Users.sql. 4. En el equipo con Microsoft SQL Server, abra Users.sql en el Analizador de consultas. En la lista de bases de datos, haga clic en pubs y ejecute la secuencia de comandos. Esto crear una tabla de usuarios de ejemplo y llenar la tabla de la base de datos Pubs que se utilizar con esta aplicacin de ejemplo.
userName failed.") Return False End If ' Check for invalid passWord. ' passWord must not be set to nothing and must be between one and 25 characters. If (passWord Is Nothing) Then System.Diagnostics.Trace.WriteLine("[ValidateUser] Input validation of passWord failed.") Return False End If If ((passWord.Length = 0) Or (passWord.Length > 25)) Then System.Diagnostics.Trace.WriteLine("[ValidateUser] Input validation of passWord failed.") Return False End If Try ' Consult with your SQL Server administrator for an appropriate connection ' string to use to connect to your local SQL Server. conn = New SqlConnection("server=localhost;Integrated Security=SSPI;database=pubs") conn.Open() ' Create SqlCommand to select pwd field from the users table given a supplied userName. cmd = New SqlCommand("Select pwd from users where uname=@userName", conn) cmd.Parameters.Add("@userName", SqlDbType.VarChar, 25) cmd.Parameters("@userName").Value = userName ' Execute command and fetch pwd field into lookupPassword string. lookupPassword = cmd.ExecuteScalar() ' Cleanup command and connection objects. cmd.Dispose() conn.Dispose() Catch ex As Exception ' Add error handling here for debugging. ' This error message should not be sent back to the caller. System.Diagnostics.Trace.WriteLine("[ValidateUser] Exception " & ex.Message) End Try ' If no password found, return false. If (lookupPassword Is Nothing) Then ' You could write failed login attempts here to the event log for additional security. Return False End If ' Compare lookupPassword and input passWord by using a case-sensitive comparison. Return (String.Compare(lookupPassword, passWord, False) = 0) End Function 4. Puede utilizar uno de dos mtodos posibles para generar la cookie de autenticacin de formularios y redirigir al usuario a una pgina apropiada en el evento cmdLogin_ServerClick. Se proporciona el cdigo de ejemplo para ambos escenarios. Utilice cualquiera de ellos segn sea necesario. o Llame al mtodo RedirectFromLoginPage para generar automticamente la cookie de autenticacin de formularios y redirigir al usuario a una pgina apropiada en el evento cmdLogin_ServerClick: Private Sub cmdLogin_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles cmdLogin.ServerClick If ValidateUser(txtUserName.Value,txtUserPass.value) Then FormsAuthentication.RedirectFromLoginPage(txtUserName.Value, _ chkPersistCookie.Checked) Else Response.Redirect("logon.aspx", True) End If End Sub o Genere el vale de autenticacin, cfrelo, cree una cookie, agrguela a la respuesta y redirija al usuario. Esto le ofrece ms control sobre cmo crear la cookie. Tambin puede incluir datos personalizados junto conFormsAuthenticationTicket en este caso. Private Sub cmdLogin_ServerClick(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles cmdLogin.ServerClick If Validateuser(txtUserName.Value,txtUserPass.Value) Then Dim tkt As FormsAuthenticationTicket Dim cookiestr As String Dim ck As HttpCookie tkt = New FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now(), _ dateTime.Now.AddMinutes(30), chkPersistCookie.Checked, "your custom data") cookiestr = FormsAuthentication.Encrypt(tkt) ck = new
HttpCookie(FormsAuthentication.FormsCookieName(), cookiestr) if (chkPersistCookie.Checked) then ck.Expires=tkt.Expiration ck.Path = FormsAuthentication.FormsCookiePath() Response.Cookies.Add(ck) Dim strRedirect As String strRedirect = Request("ReturnURL") If strRedirect <> "" Then Response.Redirect(strRedirect, True) Else strRedirect = "default.aspx" Response.Redirect(strRedirect, True) End If Else Response.Redirect("logon.aspx", True) End If End Sub