ciao a tutti!
nel mio sito web vorrei far si che la pagina iniziale (default.aspx) possa essere visibile a tutti, invece le altre pagine (contenute in una sottocartella) debbano richiedere l'autenticazione.
ho creato la pagina di login (login.aspx) con il controllo asp:
codice:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form2" runat="server">
<div>
<asp:Login runat="server" ID="log" OnAuthenticate="log_Authenticate" ></asp:Login>
</div>
</form>
</body>
</html>
e in login.aspx.cs
codice:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Request.IsAuthenticated);
}
protected void log_Authenticate(object sender, AuthenticateEventArgs e)
{
if (log.UserName == "user" && log.Password == "pass")
{
FormsAuthentication.RedirectFromLoginPage(log.UserName, log.RememberMeSet);
}
}
}
nel web.config nella sottocartella ho inserito:
codice:
<authorization>
<deny users="?"/>
</authorization>
così va tutto bene, la pagina iniziale la vedo sempre, poi quando tento di accedere alle pagine nella sottocartella mi redirecta alla pagina di login. il problema è che quando tento di fare il login al posto di redirectarmi alla pagina richiesta mi fa ritornare alla pagina di login
inoltre mi risponde che sono autenticato (Request.IsAuthenticated -->true)