Imports System.Data.OleDb

 

Partial Class Login

    Inherits System.Web.UI.Page

 

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

 

        If Request.Form("btnLogin") <> "" Then

 

            Dim sToken As String = GetToken(Request.Form("selUserName"))

            If sToken <> "" Then

                Response.Cookies("token").Value = sToken

                Response.Redirect("../ReportPortal/login.aspx")

            End If

 

        End If

 

    End Sub

 

    Public Function GetToken(ByVal sUserName As String) As String

        Dim sSql As String = "exec GetSecurityTokenForUser @UserName='" & sUserName & "'"

        Return GetSingleSqlValue(sSql)

    End Function

 

    Private Function GetConnection() As OleDbConnection

        Dim sFilePath As String = Server.MapPath("xmla.udl")

        Dim sConnectionString As String = "File Name=" & sFilePath

        Dim cn As OleDbConnection = New OleDbConnection(sConnectionString)

 

        Try

            cn.Open()

        Catch ex As Exception

            Throw New Exception("Could not connect to the database.  Please double click " & sFilePath & " and point it to ReportPortal database.  Make sure to save the connection and check the option to 'Allow saving password'.")

        End Try

 

        Return cn

    End Function

 

    Public Function GetSingleSqlValue(ByVal sSql As String) As String

        Dim sRet As String

        Dim cn As OleDbConnection = GetConnection()

        Dim cmd As New OleDbCommand(sSql, cn)

 

        Try

            sRet = cmd.ExecuteScalar()

        Catch ex As Exception

            Throw New Exception(ex.Message & "; SQL: " & sSql)

        End Try

 

        cn.Close()

        Return sRet

    End Function

 

    Public Function GetUserList() As String

        Dim sSql As String = "SELECT UserId, UserName FROM AppUser"

        Dim cmd As OleDbCommand = New OleDbCommand(sSql, GetConnection())

        Dim dr As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)

        Dim sb As New System.Text.StringBuilder

 

        While dr.Read

            Dim sUserName As String = dr.GetValue(dr.GetOrdinal("UserName"))

 

            sb.Append("<option value=" & sUserName & ">" & sUserName & "</option>" & vbCrLf)

        End While

 

        dr.Close()

        Return sb.ToString

    End Function

 

End Class