ASP.Net/Development/Authentication
Содержание
- 1 Basic Authentication (C#)
- 2 Context User Identity Name (VB.net)
- 3 Displaying the authentication status in ASP.NET
- 4 Form and database based authentication (C#)
- 5 Form based login (C#)
- 6 Get current user name and Authentication Type (VB.net)
- 7 User.Identity.IsAuthenticated (VB.net)
- 8 User.Identity.Name (VB.net)
Basic Authentication (C#)
<%--
<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>
<font face="Verdana" size="4" color="navy">
<b>Windows Authentication</b></font><hr>
<table border=1 bordercolor="#FFFFFF" bgcolor="Silver"
cellspacing=0 cellpadding=4>
<tr>
<td><b>Current Users Name</b></td>
<td><asp:label id=lblUser runat=server/></td>
</tr>
<tr>
<td><b>Current Authentication Type</b></td>
<TD><asp:label id=lblType runat=server/></TD>
</tr>
</table>
</body>
</html>
--%>
<%-- web.config
<configuration>
<system.web>
<authentication mode="Windows" />
</system.web>
</configuration>
--%>
Context User Identity Name (VB.net)
<%@ 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>
Displaying the authentication status in ASP.NET
<%@ Page Language="vb" %>
<html>
<head>
<title>Displaying the authentication status in ASP.NET</title>
</head>
<body>
<p>
<%
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
%>
</p>
</body>
</html>
Form and database based authentication (C#)
<%-- 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">
<h1>Using Form based Authentication</h1><hr>
Users Name:<br />
<asp:textbox id="txtEmail" runat=server />
<FONT SIZE=2 COLOR="RED">*</FONT>
<asp:RequiredFieldValidator
ControlToValidate="txtEmail"
Display="Dynamic"
ErrorMessage="Login name can"t be empty."
runat=server/>
<br />Password:<br />
<asp:textbox TextMode="Password" id="txtPwd" runat=server />
<FONT SIZE=2 COLOR="RED">*</FONT>
<asp:RequiredFieldValidator
ControlToValidate="txtPwd"
Display="Dynamic"
ErrorMessage="Password can"t be left empty."
runat=server/>
<br />
<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">
<font face="Verdana" size="4" color="navy">
<b>Forms Authentication With a Database</b></font><hr>
<table border=1 bordercolor="#FFFFFF" bgcolor="Silver"
cellspacing=0 cellpadding=4>
<tr>
<td><b>Current Users Name</b></td>
<td><asp:label id=lblUser runat=server/></td>
</tr>
<tr>
<td><b>Current Authentication Type</b></td>
<TD><asp:label id=lblType runat=server/></TD>
</tr>
</table>
<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>
--%>
<A href="http://www.nfex.ru/Code/ASPDownload/AuthenticationFormsDB.zip">AuthenticationFormsDB.zip( 10 k)</a>
Form based login (C#)
<%-- 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">
<h1>Using Form based Authentication</h1><hr>
Users Name:<br />
<asp:textbox id="txtEmail" runat=server />
<FONT SIZE=2 COLOR="RED">*</FONT>
<asp:RequiredFieldValidator
ControlToValidate="txtEmail"
Display="Dynamic"
ErrorMessage="Login name can"t be empty."
runat=server/>
<br />Password:<br />
<asp:textbox TextMode="Password" id="txtPwd" runat=server />
<FONT SIZE=2 COLOR="RED">*</FONT>
<asp:RequiredFieldValidator
ControlToValidate="txtPwd"
Display="Dynamic"
ErrorMessage="Password can"t be left empty."
runat=server/>
<br />
<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">
<font face="Verdana" size="4" color="navy">
<b>Forms Authentication</b></font><hr>
<table border=1 bordercolor="#FFFFFF" bgcolor="Silver"
cellspacing=0 cellpadding=4>
<tr>
<td><b>Current Users Name</b></td>
<td><asp:label id=lblUser runat=server/></td>
</tr>
<tr>
<td><b>Current Authentication Type</b></td>
<TD><asp:label id=lblType runat=server/></TD>
</tr>
</table>
<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>
--%>
<A href="http://www.nfex.ru/Code/ASPDownload/AuthenticationForms.zip">AuthenticationForms.zip( 1 k)</a>
Get current user name and Authentication Type (VB.net)
<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>
<font face="Verdana" size="4" color="navy">
<b>Windows Authentication</b></font><hr>
<table>
<tr>
<td><b>Current Users Name</b></td>
<td><asp:label id=lblUser runat=server/></td>
</tr>
<tr>
<td><b>Current Authentication Type</b></td>
<TD><asp:label id=lblType runat=server/></TD>
</tr>
</table>
</body>
</html>
User.Identity.IsAuthenticated (VB.net)
<%@ Page Language="vb" %>
<html>
<head>
<title>User property example</title>
<script runat="server">
Sub Page_Load()
Message.Text = "Authenticated: " & User.Identity.IsAuthenticated & "<br/>"
Message.Text &= "User Name: " & User.Identity.Name
End Sub
</script>
</head>
<body>
<asp:label id="Message" runat="server"/>
</body>
</html>
User.Identity.Name (VB.net)
<%@ Page Language="vb" %>
<html>
<head>
<title>User property example</title>
<script runat="server">
Sub Page_Load()
Message.Text = "Authenticated: " & User.Identity.IsAuthenticated & "<br/>"
Message.Text &= "User Name: " & User.Identity.Name
End Sub
</script>
</head>
<body>
<asp:label id="Message" runat="server"/>
</body>
</html>