Membership e Login Walkthrough: Creating a Web Site with Membership and User Login http://msdn2.microsoft.com/en-us/library/879kf95c(VS.80).aspx Membership e Login Web Site Administration Tool 1 Membership e Login Membership e Login Objectivos: Criar página principal com link para login Abrir página de login – Login.aspx LoginView control Apresentação do nome do utilizador Login control Validação do utilizador e regresso à página principal com apresentação de sucesso na validação LoginStatus control LoginName control Impedir acesso a páginas para utilizadores não autenticados Criar rules 2 Criar Web site IIS local 3 Create a membership user Asp.Net Configuration -> Security Criar utilizador: User name Password … Método de acesso: From the internet From a local area network Nota: A informação de membership é guardado por omissão no Microsoft SQL Server Express , no folder App_Data 4 Set up access rules Inserir regras de acesso para um dado directório ( p.e. memberpages) Utilizar Web Site Administration Tool Security -> Create Access Rules 5 Controlos de Login Criar página com Login Button Inserir controlo LoginStatus Login Este link referencia, por omissão, a página Login.aspx Web.config – Form Authentication <system.web> <authentication mode="Forms" /> </system.web> Criar página para fazer Login -> Login.aspx Inserir controlo Login 6 Controlos de Login Control Login: Namespace: System.Web.UI.WebControls Sintaxe: [BindableAttribute(false)] public class Login : CompositeControl 3 elementos obrigátorios: Elementos opcionais: user name único para identificar o utilizador password para verificar a identidade do utilizador button para enviar a informação ao servidor link para relembrar password help link para os utilizadores com problemas ao fazer login Um link para registar novo utilizador acção se o login foi bem sucedido modo de esconder o control se o utilizador já estiver loginado Propriedade DestinationPageUrl: Destino se bem sucedido Membership provider: default configurado no Web.config Propriedade MembershipProvider permite alterar nome provider OnAuthenticate permite alterar processo/method de autenticação Etc. 7 Controlos de Login LoginStatus: Namespace: System.Web.UI.WebControls Sintaxe: [BindableAttribute(false)] public class LoginStatus : CompositeControl Dois estados: logged ou logged out no Web site, determinado pela propriedade IsAuthenticated da página. Algumas Propriedades: LogininimageUrl e LogoutimageUrl possibilitam alterar display (texto ou image). LogoutAction (Refresh, Redirect e RedirectToLoginPage) LogoutPageUrl Loging out “limpa” o “user's authentication status “ e quando usado, as cookies do cliente Este control possibilita a colocação de um link para a página de login (login.aspx) caso o utilizador não tenha feito login 8 Controlos de Login LoginName: Namespace: System.Web.UI.WebControls Sintaxe: [BindableAttribute(false)] public class LoginName : WebControl Mostra o nome do utilizador na propriedade User da class Page Propriedade FormatString permite alterar texto a ser visualizado 9 Controlos de Login Informação para utilizadores logged-in Inserir um controlo LoginView Informação com o nome do utilizador que fez login Inserir controlo LoginName [username] 10 Controlos de Login LoginView: Namespace: System.Web.UI.WebControls Sintaxe: [BindableAttribute(false)] [ThemeableAttribute(true)] public class LoginView : Control, INamingContainer Permite associar diferentes displays a diferentes utilizadoresdepois de ser efectuada a autenticação 3 propriedades importantes: AnonymousTemplate: define template a ser visualizado pelos utilizadadores sem login LoggedInTemplate: template ser visualizado pelos utilizadores que não pertecem a nenhum Role groups e que tenham efectuado login RoleGroups: para definir os templates a ser visualizados pelos utilizadores que tenham efectuado login pertecentes a determinados grupos 11 Rule access Limitar acesso às páginas no directório memberspages Criar uma página members.aspx nesse directorio Criar um link para essa página ou escrever endereço no browser Utilizador será redirecionado para a página Login.aspx Uma vez validado com sucesso será redireccionado para a página que tinha pedido (Members.aspx) 12 Controlos de Login Registar novo utilizador Criar página register.aspx Inserir controlo CreateUserWizard Configurar propriedade ContinueDestinationPageUrl para a página principal 13 Controlos de Login ChangePassword: Namespace: System.Web.UI.WebControls Sintaxe: [BindableAttribute(false)] public class ChangePassword : CompositeControl, INamingContainer Propriedade SuccessPageUrl PasswordRecovery: Namespace: System.Web.UI.WebControls Sintaxe: [BindableAttribute(false)] public class PasswordRecovery : CompositeControl 14 class Membership ValidateUser da class membership public void Login_OnClick(object sender, EventArgs args) { if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked); else Msg.Text = "Login failed. Please check your user name and password and try again."; } // codigo html inserir password e username <body> <form id="form1" runat="server"> <h3>Login</h3> <asp:Label id="Msg" runat="server" /><br /> Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br /> Password: <asp:Textbox id="PasswordTextbox" runat="server" /><br /> <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" /> <asp:CheckBox id="NotPublicCheckBox" runat="server" /> Check here if this is <span >not</span> a public computer. </form> </body> </html> 15 class MembershipProvider Alguns métodos ValidateUser CreateUser DeleteUser FindUsersByName GetAllUsers GetNumberOfUsersOnline …. 16