Jump to content

Recommended Posts

Posted

Hi,

 

I'm trying to get the login tracker working. Our HAP install is chugging away nicely, but I've been asked to get this bit working.

 

I can't see to get it to work with an SQL database on another Server.

 

HAP is currently installed on a server called "Virtual"

The AppPool is called "HAP"

SQL Server is on another Server "CSS"

SQL Database is/would be called "logintracker"

 

I can not get the SQL to connect to the IIS APPPOOL\HAP no matter what combination I use. Can anyone help? or can I use an XML file to store the data still?

 

Regards,

 

Michael

Posted

Try this connection string

 

Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;

 

Where User Id and Password are a user account on that SQL server mapped to that SQL database

Posted (edited)

Hi Nick,

 

Do I have to make any changes to the login.sql file too before importing it?

 

I'm trying to import it directly with SQL Server Management Studio and get the following error message:

 

Msg 102, Level 15, State 1, Line 10
Incorrect syntax near '='.
Msg 102, Level 15, State 1, Line 25
Incorrect syntax near '`'.
Msg 102, Level 15, State 1, Line 38
Incorrect syntax near '`'.
Msg 102, Level 15, State 1, Line 61
Incorrect syntax near '`'.
Msg 102, Level 15, State 1, Line 74
Incorrect syntax near '`'.

 

Thanks,

 

Michael

Edited by linkazoid
Posted

Try this

USE [hap]
GO
/****** Object:  Table [dbo].[TrackerEvents]    Script Date: 12/06/2013 12:07:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TrackerEvents](
   [id] [int] IDENTITY(1,1) NOT NULL,
   [LogonDateTime] [datetime] NOT NULL,
   [username] [nvarchar](50) NOT NULL,
   [ComputerName] [nvarchar](50) NOT NULL,
   [LogoffDateTime] [datetime] NULL,
   [domainname] [nvarchar](50) NOT NULL,
   [ip] [nvarchar](50) NOT NULL,
   [logonserver] [nvarchar](50) NOT NULL,
   [os] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_TrackerEvents_1] PRIMARY KEY CLUSTERED 
(
   [id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
/****** Object:  Table [dbo].[WebTrackerEvents]    Script Date: 12/06/2013 12:07:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[WebTrackerEvents](
   [id] [int] IDENTITY(1,1) NOT NULL,
   [DateTime] [datetime] NOT NULL,
   [username] [nvarchar](50) NOT NULL,
   [ComputerName] [nvarchar](50) NOT NULL,
   [EventType] [nvarchar](50) NOT NULL,
   [iP] [nvarchar](50) NOT NULL,
   [browser] [nvarchar](50) NOT NULL,
   [OS] [nvarchar](50) NOT NULL,
   [Details] [nvarchar](max) NOT NULL,
CONSTRAINT [PK_WebTrackerEvents_1] PRIMARY KEY CLUSTERED 
(
   [id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

  • Thanks 1
Posted

This scripts, creates the database as well (you need to change the paths at the top, as I've generated these from SQL 2012

USE [master]
GO
/****** Object:  Database [hap]    Script Date: 12/06/2013 12:09:53 ******/
CREATE DATABASE [hap]
CONTAINMENT = NONE
ON  PRIMARY 
( NAME = N'hap', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\hap.mdf' , SIZE = 129024KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON 
( NAME = N'hap_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\hap_log.ldf' , SIZE = 10240KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
ALTER DATABASE [hap] SET COMPATIBILITY_LEVEL = 100
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [hap].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [hap] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [hap] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [hap] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [hap] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [hap] SET ARITHABORT OFF 
GO
ALTER DATABASE [hap] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [hap] SET AUTO_CREATE_STATISTICS ON 
GO
ALTER DATABASE [hap] SET AUTO_SHRINK ON 
GO
ALTER DATABASE [hap] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [hap] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [hap] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [hap] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [hap] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [hap] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [hap] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [hap] SET  DISABLE_BROKER 
GO
ALTER DATABASE [hap] SET AUTO_UPDATE_STATISTICS_ASYNC ON 
GO
ALTER DATABASE [hap] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [hap] SET TRUSTWORTHY OFF 
GO
ALTER DATABASE [hap] SET ALLOW_SNAPSHOT_ISOLATION OFF 
GO
ALTER DATABASE [hap] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [hap] SET READ_COMMITTED_SNAPSHOT OFF 
GO
ALTER DATABASE [hap] SET HONOR_BROKER_PRIORITY OFF 
GO
ALTER DATABASE [hap] SET RECOVERY SIMPLE 
GO
ALTER DATABASE [hap] SET  MULTI_USER 
GO
ALTER DATABASE [hap] SET PAGE_VERIFY CHECKSUM  
GO
ALTER DATABASE [hap] SET DB_CHAINING OFF 
GO
ALTER DATABASE [hap] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF ) 
GO
ALTER DATABASE [hap] SET TARGET_RECOVERY_TIME = 0 SECONDS 
GO
USE [hap]
GO
/****** Object:  User [iis apppool\hap]    Script Date: 12/06/2013 12:09:53 ******/
CREATE USER [iis apppool\hap] FOR LOGIN [iIS APPPOOL\HAP]
GO
ALTER ROLE [db_owner] ADD MEMBER [iis apppool\hap]
GO
/****** Object:  Table [dbo].[TrackerEvents]    Script Date: 12/06/2013 12:09:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TrackerEvents](
   [id] [int] IDENTITY(1,1) NOT NULL,
   [LogonDateTime] [datetime] NOT NULL,
   [username] [nvarchar](50) NOT NULL,
   [ComputerName] [nvarchar](50) NOT NULL,
   [LogoffDateTime] [datetime] NULL,
   [domainname] [nvarchar](50) NOT NULL,
   [ip] [nvarchar](50) NOT NULL,
   [logonserver] [nvarchar](50) NOT NULL,
   [os] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_TrackerEvents_1] PRIMARY KEY CLUSTERED 
(
   [id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
/****** Object:  Table [dbo].[WebTrackerEvents]    Script Date: 12/06/2013 12:09:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[WebTrackerEvents](
   [id] [int] IDENTITY(1,1) NOT NULL,
   [DateTime] [datetime] NOT NULL,
   [username] [nvarchar](50) NOT NULL,
   [ComputerName] [nvarchar](50) NOT NULL,
   [EventType] [nvarchar](50) NOT NULL,
   [iP] [nvarchar](50) NOT NULL,
   [browser] [nvarchar](50) NOT NULL,
   [OS] [nvarchar](50) NOT NULL,
   [Details] [nvarchar](max) NOT NULL,
CONSTRAINT [PK_WebTrackerEvents_1] PRIMARY KEY CLUSTERED 
(
   [id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
USE [master]
GO
ALTER DATABASE [hap] SET  READ_WRITE 
GO

Posted

Thanks Nick,

 

The first script has allowed me to import the tables. Now that I've changed the web.config and the hapconfig.xml I am greeted with the following error.

 

Server Error in '/' Application.
--------------------------------------------------------------------------------


Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. 
 Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.TypeLoadException: Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Source Error: 


An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 



[TypeLoadException: Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.]
  System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, Boolean loadTypeFromPartialName, ObjectHandleOnStack type) +0
  System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName) +314
  System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) +95
  System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) +124
  System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase) +76

[ConfigurationErrorsException: Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.]
  System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase) +11531964
  System.Web.Configuration.Common.ModulesEntry.SecureGetType(String typeName, String propertyName, ConfigurationElement configElement) +69
  System.Web.Configuration.Common.ModulesEntry..ctor(String name, String typeName, String propertyName, ConfigurationElement configElement) +62
  System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList) +264
  System.Web.HttpApplication.GetModuleCollection(IntPtr appContext) +1356
  System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +149
  System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +352
  System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +407
  System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +375

[HttpException (0x80004005): Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.]
  System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11702064
  System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141
  System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4870277


 

I'm so sorry that I'm having so many problems.

 

Regards,

Michael

Posted

Hi Nick,

 

Not sure why that happened... I used aspnet_regiis.exe -iru and that seemed to fix it.

 

I'm getting there, but it's still not quite done.

When logging in to HAP a new message is now displayed.

 

Server Error in '/HAP' Application.

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[sqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)]
  System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +6351920
  System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +412
  System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity) +6366506
  System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject) +180
  System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout) +6366917
  System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +6366793
  System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +352
  System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +831
  System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +49
  System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +6368598
  System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +78
  System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +2194
  System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +89
  System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +6372110
  System.Data.SqlClient.SqlConnection.Open() +300
  System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) +934
  HAP.Web.Login.login_Click(Object sender, EventArgs e) +620
  System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +155
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3707

 

I've followed the following guide SQL SERVER – FIX : ERROR : (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: ) | Journey to SQL Authority with Pinal Dave but that's not helped.

 

Regards,

 

Michael

Posted

Hi Nick,

 

It appears that I missed the SQL Instance from the string. Everything appears that it should work now, but I nothing is being populated in the Tracker. I've created a new GPO for my test machine and have modified Line 18. Do I need to modify the lines below? If so what should I put?

 

strHTTPUsername	= ""
strHTTPPassword	= ""

 

Hopefully all these questions and problems will help others.

 

Regards,

 

Michael

Posted
Check that in the app_config.xml file the provider is set to SQL not XML. It should start logging then. Check the /tracker/ page for more
Posted (edited)

The provider is set to

provider="SQLConnectionString" />

 

Should I be able to run the .vbs manually if I have the .msi installed?

Edited by linkazoid
Posted

When I try to run the Logon Tracker from the command line with my details, the following error is displayed.

 

Untitled.png

 

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Security.SecurityException: The source was not found, but some or all event logs could not be searched.  Inaccessible logs: Security.
  at System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly)
  at System.Diagnostics.EventLog.SourceExists(String source, String machineName)
  at System.Diagnostics.EventLog.SourceExists(String source)
  at HAP.Logon.Tracker.Loading.api_LogonCompleted(Object sender, LogonCompletedEventArgs e)
  at HAP.Logon.Tracker.api.api.OnLogonOperationCompleted(Object arg)
The Zone of the assembly that failed was:
MyComputer


************** Loaded Assemblies **************
mscorlib
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.5466 (Win7SP1GDR.050727-5400)
   CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
HAP Logon Tracker
   Assembly Version: 4.0.0.0
   Win32 Version: 4.0.0
   CodeBase: file:///c:/Windows/System32/HAP%20Logon%20Tracker.exe
----------------------------------------
System.Windows.Forms
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.5468 (Win7SP1GDR.050727-5400)
   CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.5467 (Win7SP1GDR.050727-5400)
   CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.5467 (Win7SP1GDR.050727-5400)
   CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Web.Services
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
   CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Web.Services/2.0.0.0__b03f5f7f11d50a3a/System.Web.Services.dll
----------------------------------------
System.Xml
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
   CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Configuration
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
   CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
cuz5-i4x
   Assembly Version: 4.0.0.0
   Win32 Version: 2.0.50727.5467 (Win7SP1GDR.050727-5400)
   CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:


   


When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.


 

I honestly don't understand why I'm struggling so much... Even the documentation is confusing me, surely this is not correct.

 

Documentation.JPG

Posted

On the server you need to grant permission to the HAP IIS AppPool to search the Security Event log

 

  1. Open the Registry Editor:

    1. Select Start then Run
    2. Enter regedt32 or regedit
    3.  

      [*]Navigate/expand to the following key:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security

       

      [*]Right click on this entry and select Permissions

       

      [*]Add the Network Service user

       

      [*]Give it Read permission

       

Posted

I have made this change, but still get the same errors when running the HAP Logon Tracker.

 

Would it help if I PM'd my hapconfig.xml and Web.config file to you to have a quick look at?

 

Michael

Posted
On your test machine your testing tracker on, can you do the same procedure that you did on the server, and change the permissions on that registry key. Get the error that is then logged in the App Event Log. This will tell you what is going wrong.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...