ASP.Net/Development/Authentication
Содержание
Basic Authentication (C#)
<source lang="csharp">
<%--
<html>
<head>
<script language="C#" runat="server"> void Page_Load(Object Src,EventArgs E) { lblUser.Text = User.Identity.Name; lblType.Text = User.Identity.AuthenticationType; } </script>
</head> <body>
Windows Authentication
Current Users Name | <asp:label id=lblUser runat=server/> |
Current Authentication Type | <asp:label id=lblType runat=server/> |
</body> </html> --%> <%-- web.config <configuration>
<system.web> <authentication mode="Windows" /> </system.web>
</configuration> --%>
</source>
Context User Identity Name (VB.net)
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <title>Context property example</title> <script runat="server"> Sub Page_Load() Message.Text = "Currently logged in as: " & _ Context.User.Identity.Name End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html>
</source>
Displaying the authentication status in ASP.NET
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <title>Displaying the authentication status in ASP.NET</title> </head>
<body>
<% Dim boolAuth As Boolean boolAuth = Request.IsAuthenticated If boolAuth Then Response.Write("User " & Page.User.Identity.Name & " is authenticated.") Else Response.Write("Current user is not authenticated.") End If %>
</body> </html>
</source>
Form and database based authentication (C#)
<source lang="csharp">
<%-- login.aspx <%@ Page Language="C#" %> <%@ Import Namespace="System.Web.Security " %> <%@ Import Namespace="System.Data.OleDb" %> <html> <head> <script language="C#" runat=server>
void Login_Click(Object Src, EventArgs E) { if (Page.IsValid) { String strConn ="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("DBAuth.mdb") + ";"; OleDbConnection Conn = new OleDbConnection(strConn) ; Conn.Open(); String strSQL = "SELECT Pwd FROM Tbl_MA_Users WHERE Email = "" + txtEmail.Text + """; OleDbCommand Cmd = new OleDbCommand(strSQL,Conn); //Create a datareader, connection object OleDbDataReader Dr = Cmd.ExecuteReader(System.Data.rumandBehavior.CloseConnection); //Get the first row and check the password. if (Dr.Read()) { if (Dr["Pwd"].ToString() == txtPwd.Text) FormsAuthentication.RedirectFromLoginPage(txtEmail.Text, false); else lblLoginMsg.Text = "Invalid password."; } else lblLoginMsg.Text = "Login name not found."; Dr.Close(); } }
</script> </head> <body> <form runat="server">
Using Form based Authentication
Users Name:
<asp:textbox id="txtEmail" runat=server />
*
<asp:RequiredFieldValidator
ControlToValidate="txtEmail" Display="Dynamic" ErrorMessage="Login name can"t be empty." runat=server/>
Password:
<asp:textbox TextMode="Password" id="txtPwd" runat=server />
* <asp:RequiredFieldValidator ControlToValidate="txtPwd" Display="Dynamic" ErrorMessage="Password can"t be left empty." runat=server/>
<asp:Label
id="lblLoginMsg" ForeColor="Red" Font-Name="Verdana"; Font-Size="10" runat=server />
<b /> <asp:button
id="btnLogin" Text="Login" OnClick="Login_Click" runat=Server />
</form> </body> </html> --%> <%-- default.aspx <%@ Import Namespace="System.Web.Security " %> <html> <head> <script language="C#" runat=server>
void Page_Load(Object S, EventArgs E) { lblUser.Text = User.Identity.Name; lblType.Text = User.Identity.AuthenticationType; } void Logout_Click(Object S, EventArgs E) { FormsAuthentication.SignOut(); Server.Transfer("login.aspx"); }
</script> </head> <body> <form runat="server">
Forms Authentication With a Database
Current Users Name | <asp:label id=lblUser runat=server/> |
Current Authentication Type | <asp:label id=lblType runat=server/> |
<asp:button text="Logout" OnClick="Logout_Click" runat=server/>
</form> </body> </html> --%> <%-- web.config <configuration>
<system.web> <authentication mode="Forms"> <forms name=".MyDemo" loginUrl="login.aspx" protection="All" timeout="20" /> </authentication> <authorization> <deny users="?" /> </authorization> </system.web>
</configuration> --%>
</source>
<A href="http://www.nfex.ru/Code/ASPDownload/AuthenticationFormsDB.zip">AuthenticationFormsDB.zip( 10 k)</a>
Form based login (C#)
<source lang="csharp">
<%-- login.aspx
<%@ Import Namespace="System.Web.Security " %>
<html>
<head>
<script language="C#" runat=server>
void Login_Click(Object Src, EventArgs E) { if (Page.IsValid) { if (txtEmail.Text == "email" && txtPwd.Text == "MyPass") FormsAuthentication.RedirectFromLoginPage(txtEmail.Text,false); else lblLoginMsg.Text = "Use "email" as user name and password as MyPass. Please try again"; } }
</script> </head> <body> <form runat="server">
Using Form based Authentication
Users Name:
<asp:textbox id="txtEmail" runat=server />
*
<asp:RequiredFieldValidator
ControlToValidate="txtEmail" Display="Dynamic" ErrorMessage="Login name can"t be empty." runat=server/>
Password:
<asp:textbox TextMode="Password" id="txtPwd" runat=server />
* <asp:RequiredFieldValidator ControlToValidate="txtPwd" Display="Dynamic" ErrorMessage="Password can"t be left empty." runat=server/>
<asp:Label
id="lblLoginMsg" ForeColor="Red" Font-Name="Verdana"; Font-Size="10" runat=server />
<b /> <asp:button
id="btnLogin" Text="Login" OnClick="Login_Click" runat=Server />
</form> </body> </html>
--%>
<%-- default.aspx <%@ Import Namespace="System.Web.Security " %> <html> <head> <script language="C#" runat=server>
void Page_Load(Object S, EventArgs E) { lblUser.Text = User.Identity.Name; lblType.Text = User.Identity.AuthenticationType; } void Logout_Click(Object S, EventArgs E) { FormsAuthentication.SignOut(); Server.Transfer("login.aspx"); }
</script> </head> <body> <form runat="server">
Forms Authentication
Current Users Name | <asp:label id=lblUser runat=server/> |
Current Authentication Type | <asp:label id=lblType runat=server/> |
<asp:button text="Logout" OnClick="Logout_Click" runat=server/>
</form> </body> </html> --%>
<%-- web.config <configuration>
<system.web> <authentication mode="Forms"> <forms name=".MyDemo" loginUrl="login.aspx" protection="All" timeout="60" /> </authentication> <machineKey validationKey="AutoGenerate" decryptionKey="AutoGenerate" validation="SHA1"/> <authorization> <deny users="?" /> </authorization> </system.web>
</configuration> --%>
</source>
<A href="http://www.nfex.ru/Code/ASPDownload/AuthenticationForms.zip">AuthenticationForms.zip( 1 k)</a>
Get current user name and Authentication Type (VB.net)
<source lang="csharp">
<html> <head>
<script language="vb" runat="server"> Sub Page_Load(Src As Object, E As EventArgs) lblUser.Text = User.Identity.Name lblType.Text = User.Identity.AuthenticationType End Sub </script>
</head> <body>
Windows Authentication
Current Users Name | <asp:label id=lblUser runat=server/> |
Current Authentication Type | <asp:label id=lblType runat=server/> |
</body> </html>
</source>
User.Identity.IsAuthenticated (VB.net)
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <title>User property example</title> <script runat="server"> Sub Page_Load() Message.Text = "Authenticated: " & User.Identity.IsAuthenticated & "
" Message.Text &= "User Name: " & User.Identity.Name End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html>
</source>
User.Identity.Name (VB.net)
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <title>User property example</title> <script runat="server"> Sub Page_Load() Message.Text = "Authenticated: " & User.Identity.IsAuthenticated & "
" Message.Text &= "User Name: " & User.Identity.Name End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html>
</source>