Forms Authentication Against An XML File

This code shows how to validate against an XML file for Forms Authentication security in ASP.Net. Please read one of the earlier articles on Forms Authentication for an introduction and to see the required settings in the web.config file. The code below is just a modification of the login.aspx page.

<%@Page Language="VB" Trace="false"%>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Xml" %>
<script language="VB" runat=server>
  Sub ValidateLogin(Src as Object, E as EventArgs)
    Dim sXmlPath As String = "C:\Inetpub\wwwroot\users.xml"
    Dim oXmlDoc As New XmlDocument()
    Try
      oXmlDoc.Load(sXmlPath)
    Catch oError As Exception
      StatusMessage.innerHTML = "There was an error:<BR>" & oError.Message & "<BR>" _
        & oError.Source & "."
      Exit Sub
    End Try
    Dim oXmlUser As XmlNodeList
    oXmlUser = oXmlDoc.GetElementsByTagname(txtUser.Value)
    If Not (oXmlUser Is Nothing) Then
      If txtPwd.Value = oXmlUser(0).FirstChild().Value Then
        FormsAuthentication.RedirectFromLoginPage(txtUser.Value, false)
      Else
      StatusMessage.InnerHtml = "Invalid login"
      End If
    End If
  End Sub
</script>
<html>
<head>
  <title>Forms Authentication Against An XML File</title>
</head>
<body>
<form method="post" runat="server">
  Username: <INPUT type="text" name="txtUser" id="txtUser"
runat="server"/><BR>
  Password: <INPUT type="password" name="txtPwd" id="txtPwd"
runat="server"/><BR>
<INPUT type="submit" OnServerClick="ValidateLogin" runat="server"/>
</form>
<SPAN id="StatusMessage" runat="server"/>
</body>
</html>

You might also like...

Comments

Orcs Web

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“XML is like violence - if it's not working for you, you're not using enough of it.”