Sres me pueden apoyar. tengo un formulario que inserta datos que estoy desarrollando pare tengo problemas en un campo que es un campo relacionado con otra tabla

Mi tabla usuarios tiene datos, lo que quiero hacer es cuando e registra un nuevo cliente se que agreguen todos los datos los datos a excepción del campo foráneo(CODUSUARIO)

la ideas es controlar que usuario se esta registrando, ya que existiría 2 formas de registro cuando cliente mismo se registra o cuando el trabajar lo registra

existe en ASP NET la forma de poder registrar por sessiones, cuando se logeo un personal que se pueda saber que clientes esta registrando y cuando es un cliente que se esta registrando desde la web tendria que registrarse con un solo codigo(cliente web)

ESTRUCTURA DE MIS TABLAS(el cambio CODUSUARIO es foranea en mi tabla Cliente)

CREATE TABLE [dbo].[CLIENTE](
[CODI_EMPLEA] [int] IDENTITY(1,1) NOT NULL,
[NOMBRE] [nvarchar](50) NULL,
[PATERNO] [nvarchar](50) NULL,
[MATERNO] [nvarchar](50) NULL,
[DIRECCION] [nvarchar](70) NULL,
[DNI] [numeric](18, 0) NOT NULL,
[CODPAIS] [int] NULL,
[CHECK_MAIL] [bit] NULL,
[F_NACIMIENTO] [datetime] NULL,
[IDSEXO] [int] NULL,
[CELULAR] [int] NULL,
[CELULAR1] [int] NULL,
[FIJO] [int] NOT NULL,
[ESTADO] [int] NULL,
[CODUSUARIO] [int] NULL, FOREIGN KEY
CONSTRAINT [PK_EMPLEADO] PRIMARY KEY CLUSTERED


CREATE TABLE [dbo].[USUARIO](
[CODUSUARIO] [int] IDENTITY(1,1) NOT NULL,
[USER1] [nchar](10) NOT NULL,
[PASSWORD1] [nchar](10) NOT NULL,
[IDSEXO] [int] NULL,
[CODPAIS] [int] NULL,
[CHECK_MAIL] [bit] NULL,
[F_NACIMIENTO] [datetime] NULL,
[ESTADO] [int] NOT NULL,
CONSTRAINT [PK_USUARIO] PRIMARY KEY CLUSTERED

CÓDIGO PARA INSERTAR UN CLIENTE (ASP NET)

Try
comX.Open()
Dim cmd As New SqlCommand("Insert_Cliente", comX)
cmd.CommandType = CommandType.StoredProcedure
With cmd
.Parameters.Add("nombre", TxtNombre.Text)
.Parameters.Add("materno", TxtMaterno.Text)
.Parameters.Add("paterno", TxtPaterno.Text)
.Parameters.Add("Direccion", TxtDireccion.Text)
.Parameters.Add("DNI", TxtDni.Text)
.Parameters.Add("fijo", txtFijo.Text)
.Parameters.Add("celular", txtCelular.Text)
.Parameters.Add("celular1", txtCelular1.Text)
.Parameters.Add("CODUSUARIO", txtCODIUSUARIO.Text).Value.ToString() 'FORANEA


'llenado de Radio Button
.Parameters.AddWithValue("@IdSexo", System.Data.SqlDbType.Int).Value = gender()

'llenado de Check Mail
.Parameters.Add("@Check_Mail", System.Data.SqlDbType.Bit).Value = Check_Mail.Checked

' Dim myDate = DateTimePickerPrint.Value
.Parameters.AddWithValue("@F_NACIMIENTO", DateTime.Parse(txtfecha.Text.ToString))

' cmd.Parameters.Add("@F_NACIMIENTO", SqlDbType.Date).Value = myDate
.Parameters.Add("@CODPAIS", SqlDbType.Int).Value = DropDonLisPais1.SelectedValue
.ExecuteNonQuery()
End With
mensaje.Text = "Grabo correctamente,Cliente Agregado"
Catch ex As Exception
mensaje.Text = "Error 1" & ex.Message
Finally
comX.Close()

End Try

STORE PROCEDURE

ALTER procedure [dbo].[Insert_Cliente]
(
@NOMBRE nvarchar(50),
@PATERNO nvarchar(50),
@MATERNO nvarchar(50),
@DIRECCION nvarchar(70),
@DNI numeric,
@CODPAIS int,
@CHECK_MAIL bit ,
@F_NACIMIENTO datetime,
@IDSEXO int,
@CELULAR int,
@CELULAR1 int,
@FIJO int,
@ESTADO int = 1,
@CODUSUARIO int = 1
)
as
insert into dbo.CLIENTE(
NOMBRE,
PATERNO,
MATERNO,
DIRECCION,
DNI,
CODPAIS,
CHECK_MAIL,
F_NACIMIENTO,
IDSEXO,
CELULAR,
CELULAR1,
FIJO,
ESTADO,
CODUSUARIO
)
values(@NOMBRE,@PATERNO,@MATERNO,@DIRECCION,@DNI,@ CODPAIS,@CHECK_MAIL,@F_NACIMIENTO,@IDSEXO,@CELULAR ,@CELULAR1,
@FIJO,1,@CODUSUARIO);
desde ya agradezco a cada uno de ustedes que nos brindan su apoyo en forma condicional, no dominio mucho programación pero si tengo el interés se aprender