Yo lo tengo así:
En el "Web.config" tengo:
<configuration>
<system.web>
<authentication mode="Forms">
<forms loginUrl="Publico/Acceso.aspx"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
<location path="Publico">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="Default.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
</configuration>
Y la estructura de mi página es:
+Publico/
-(Páginas que no necesitan identificación de usuario para ser vistas)
+Privado/
-(Páginas que sí necesitan identificación de usuario para ser vistas)
+Default.aspx
Veamos ahora el "Web.config" parte por parte:
<system.web>
<authentication mode="Forms">
<forms loginUrl="Publico/Acceso.aspx"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
Acá, primero, defino cual es el formulario de inicio de sesión, segundo digo que por defecto, todas las páginas requieren autenticación.
<location path="Publico">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="Default.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Acá defino dos excepciones a la restricción anterior y digo que dentro de la carpeta "Publico, todas las páginas están autorizadas para ser vistas, por lo que no necesitan autenticación.
Lo mismo hago para el archivo en particular "Default.aspx", por lo que tampoco requiere de un usuario autentificado para poder visualizarse.
En el formulario de acceso, en un botón tengo algo así:
//Determinar permisos según el método que uses
if (!permisoConcedido)
{
lbMensaje.Text = "El nombre de usuario ingresado no existe o la contraseña es inválida";
}
else
{
FormsAuthentication.RedirectFromLoginPage(strNombreDeUsuario, true);
}
Espero que sirva de algo.
Respecto a lo del "campo del login"... ni idea.