Dynaverse.net

Off Topic => Engineering => Topic started by: toasty0 on June 04, 2005, 11:09:32 pm

Title: SG: An add_user page to study for you Steve
Post by: toasty0 on June 04, 2005, 11:09:32 pm

<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Data" %>
<%@ Page language="c#" Codebehind="AddUser.aspx.cs" AutoEventWireup="false" Inherits="PW_Test.AddUser" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
   <HEAD>
      <title>AddUser</title>
      <script runat="server">
    private void Page_load(Object Src, EventArgs e)
    {
   
    String email = Request.QueryString["UserEmail"];
   
    if(null != email)
    UserEmail.Value=email;
    }
   
    private void AddUser_Click(Object sender, EventArgs e)
    {
    if( !Page.IsValid)
    {
    Msg.Text="Some required fields are invalid.";
    return;
    }
   
    DataSet ds=new DataSet();
   
    String userFile= ".../users.xml";
   
    FileStream fs = new FileStream(Server.MapPath(userFile), FileMode.Open, FileAccess.Read);
    StreamReader reader= new StreamReader(fs);
    ds.ReadXml(reader);
    fs.Close();
   
    string hashedpwd=FormsAuthentication.HashPasswordForStoringInConfigFile(UserPass.Value, "SHA1");
    DataRow newUser=ds.Tables[0].NewRow();
    newUser["UserEmail"]=UserEmail.Value;
    newUser["UserPassword"]=hashedpwd;
    ds.Tables[0].Rows.Add(newUser);
    ds.AcceptChanges();
   
    fs= new FileStream(Server.MapPath(userFile),FileMode.Create,
    FileAccess.Write|FileAccess.Read);
    StreamWriter writer = new StreamWriter(fs);
    ds.WriteXml(writer);
    writer.Close();
    fs.Close();
   
    Response.Redirect(".../Default.aspx");
    }
      </script>
      <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
      <meta name="CODE_LANGUAGE" Content="C#">
      <meta name="vs_defaultClientScript" content="JavaScript">
      <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
   </HEAD>
   <body MS_POSITIONING="GridLayout">
      <form id="Form1" method="post" runat="server">
         <div style="BACKGROUND:#ccccff">
            <h3><font face="Verdana">Add New User</font></h3>
         </div>
         <table>
            <tr>
               <td>Name</td>
               <td><input id="UserEmail" type="text" runat="server"></td>
               <td><asp:RequiredFieldValidator ControlToValidate="UserEmail" Display="Static" ErrorMessage="*" runat="server" id="RequiredFieldValidator1" />
               </td>
               <td>
                  <asp:RegularExpressionValidator ID="RegexValidator" ControlToValidate="UserEmail" ValidateExpression="^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-)+\.)+))&#13;&#10;&#9;&#9;&#9;&#9;&#9;([a-zA-Z](2,4)|[0-9]{1,3})(\]?)$"
                     EnableClientScript="False" Display="Static" ErrorMessage="*" runat="server" />
               </td>
            </tr>
            <tr>
               <td>Password</td>
               <td><input id="UserPass" type="password" runat="server"></td>
               <td><asp:RequiredFieldValidator ControlToValidate="UserPass" Display="Static" ErrorMessage="*" Runat="server" id="RequiredFieldValidator2" /></td>
            </tr>
            <tr>
               <td>Persistant Forms</td>
               <td><asp:CheckBox ID="persist" Runat="server" AutoPostBack="True" /></td>
            </tr>
         </table>
         <input type="submit" onserverclick="AddUser_Click" value="Add User" runat="server"><p>
            <asp:Label ID="Msg" ForeColor="red" Font-Name="Verdana" Font-Size="10" Runat="server" />
      </form>
      </P>
   </body>
</HTML>
Title: Re: SG: An add_user page to study for you Steve
Post by: Sirgod on June 05, 2005, 12:39:18 am
Wow that's alot of code for just adding a user to a web Page/Forum. Is there an easier way to do this? Or is finding out part of this weeks leason Plan?  ;)

I have got to get my head back into this. I can somewhat follow the stuff now, But i could never right anything off the top of my head like  you and others here can.

Stephen
Title: Re: SG: An add_user page to study for you Steve
Post by: toasty0 on June 05, 2005, 09:52:29 am
Some of that code is for page/control rendering .

The following is the code that adds the user:

<script runat="server">
    private void Page_load(Object Src, EventArgs e)
    {
   
    String email = Request.QueryString["UserEmail"];
   
    if(null != email)
    UserEmail.Value=email;
    }
   
    private void AddUser_Click(Object sender, EventArgs e)
    {
    if( !Page.IsValid)
    {
    Msg.Text="Some required fields are invalid.";
    return;
    }
   
    DataSet ds=new DataSet();
   
    String userFile= ".../users.xml";
   
    FileStream fs = new FileStream(Server.MapPath(userFile), FileMode.Open, FileAccess.Read);
    StreamReader reader= new StreamReader(fs);
    ds.ReadXml(reader);
    fs.Close();
   
    string hashedpwd=FormsAuthentication.HashPasswordForStoringInConfigFile(UserPass.Value, "SHA1");
    DataRow newUser=ds.Tables[0].NewRow();
    newUser["UserEmail"]=UserEmail.Value;
    newUser["UserPassword"]=hashedpwd;
    ds.Tables[0].Rows.Add(newUser);
    ds.AcceptChanges();
   
    fs= new FileStream(Server.MapPath(userFile),FileMode.Create,
    FileAccess.Write|FileAccess.Read);
    StreamWriter writer = new StreamWriter(fs);
    ds.WriteXml(writer);
    writer.Close();
    fs.Close();
   
    Response.Redirect(".../Default.aspx");
    }
      </script>

The following is the HTML that is rendered on the client machine by their browser except where you see the directive 'runat=server'.

 <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
      <meta name="CODE_LANGUAGE" Content="C#">
      <meta name="vs_defaultClientScript" content="JavaScript">
      <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
   </HEAD>
   <body MS_POSITIONING="GridLayout">
      <form id="Form1" method="post" runat="server">
         <div style="BACKGROUND:#ccccff">
            <h3><font face="Verdana">Add New User</font></h3>
         </div>
         <table>
            <tr>
               <td>Name</td>
               <td><input id="UserEmail" type="text" runat="server"></td>
               <td><asp:RequiredFieldValidator ControlToValidate="UserEmail" Display="Static" ErrorMessage="*" runat="server" id="RequiredFieldValidator1" />
               </td>
               <td>
                  <asp:RegularExpressionValidator ID="RegexValidator" ControlToValidate="UserEmail" ValidateExpression="^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-)+\.)+))&#13;&#10;&#9;&#9;&#9;&#9;&#9;([a-zA-Z](2,4)|[0-9]{1,3})(\]?)$"
                     EnableClientScript="False" Display="Static" ErrorMessage="*" runat="server" />
               </td>
            </tr>
            <tr>
               <td>Password</td>
               <td><input id="UserPass" type="password" runat="server"></td>
               <td><asp:RequiredFieldValidator ControlToValidate="UserPass" Display="Static" ErrorMessage="*" Runat="server" id="RequiredFieldValidator2" /></td>
            </tr>
            <tr>
               <td>Persistant Forms</td>
               <td><asp:CheckBox ID="persist" Runat="server" AutoPostBack="True" /></td>
            </tr>
         </table>
         <input type="submit" onserverclick="AddUser_Click" value="Add User" runat="server"><p>
            <asp:Label ID="Msg" ForeColor="red" Font-Name="Verdana" Font-Size="10" Runat="server" />
      </form>
      </P>
   </body>
</HTML>