ASP.Net/Development/Authentication

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

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 />&nbsp;
<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 />
  &nbsp;<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 />&nbsp;
<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 />
  &nbsp;<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>