WCF service for LDAP-based user authentication against Active Directory
Last commit: 2025-10-29
Login also in → NET-CUNAppObtenerCentro also in → NET-WS-Informes| Operation ⇅ | Verb | Returns ⇅ | Parameters | SQLs ⇅ | Description | Flags |
|---|---|---|---|---|---|---|
| Login | SOAP | RespLoginEntity | usuario, password | 1 | ✓ 🔁 | |
| GetRolesByUsuario | SOAP | RespListRol | usuario | 1 | ✓ | |
| GetRolesByCodigoUsuario | SOAP | RespListRol | codUsuario | 1 | ✓ | |
| GetGrupoByUsuario | SOAP | RespGrupo | usuario | 1 | ✓ | |
| ObtenerUsuarioIntranet | SOAP | RespUsuarioIntranet | usuario | 1 | ✓ | |
| PerteneceCentroCancer | SOAP | RespBool | usuario | 1 | ✓ | |
| ObtenerCategoriaProfesional | SOAP | RespCategoria | codUsuario | 1 | ✓ | |
| ObtenerAreas | SOAP | RespListArea | codUsuario | 1 | ✓ | |
| ObtenerCentro | SOAP | RespCentro | codUsuario | 1 | ✓ 🔁 | |
| ObtenerUsuarioIntranetCSV | SOAP | RespUsuarioIntranetCSV | 2 | ✓ |
cysnet.cun.coreSELECT SG02NOM, SG02APE1, SG02APE2, SG02COD FROM SG0200 WHERE UPPER(SG02CODWINDOWS) = UPPER(:usuario)
/// <summary> /// Authenticates login /// </summary> /// <param name="usuario">TODO: describe usuario</param> /// <param name="password">TODO: describe password</param> /// <returns>RespLoginEntity</returns>
[TestMethod]
public void Test_Login_ReturnsSuccess()
{
// Arrange
// NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
// NOTE: external dependency detected — consider mocking: Oracle DB
var client = new WSLoginLDAP();
var usuario = "test_value";
var password = "test_value";
// Act
var result = client.Login(usuario, password);
// Assert
Assert.IsNotNull(result);
Assert.IsTrue(result.Exito);
}
[TestMethod]
public void Test_Login_WithInvalidInput_ReturnsFailure()
{
// Arrange
var client = new WSLoginLDAP();
var usuario = null;
var password = null;
// Act
var result = client.Login(usuario, password);
// Assert
Assert.IsFalse(result?.Exito ?? true);
}
cysnet.cun.coreSELECT SG06.SG03COD FROM SG0200 SG02 LEFT JOIN SG0600 SG06 ON SG06.SG01COD = SG02.SG01COD WHERE UPPER(SG02.SG02CODWINDOWS) = UPPER(:usuario)
/// <summary> /// Retrieves get roles by usuario /// </summary> /// <param name="usuario">TODO: describe usuario</param> /// <returns>RespListRol</returns>
[TestMethod]
public void Test_GetRolesByUsuario_ReturnsSuccess()
{
// Arrange
// NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
// NOTE: external dependency detected — consider mocking: Oracle DB
var client = new WSLoginLDAP();
var usuario = "test_value";
// Act
var result = client.GetRolesByUsuario(usuario);
// Assert
Assert.IsNotNull(result.Resultado);
}
[TestMethod]
public void Test_GetRolesByUsuario_WithInvalidInput_ReturnsFailure()
{
// Arrange
var client = new WSLoginLDAP();
var usuario = null;
// Act
var result = client.GetRolesByUsuario(usuario);
// Assert
Assert.IsFalse(result?.Exito ?? true);
}
cysnet.cun.coreSELECT SG06.SG03COD FROM SG0200 SG02
/// <summary> /// Retrieves get roles by codigo usuario /// </summary> /// <param name="codUsuario">TODO: describe codUsuario</param> /// <returns>RespListRol</returns>
[TestMethod]
public void Test_GetRolesByCodigoUsuario_ReturnsSuccess()
{
// Arrange
// NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
// NOTE: external dependency detected — consider mocking: Oracle DB
var client = new WSLoginLDAP();
var codUsuario = "test_value";
// Act
var result = client.GetRolesByCodigoUsuario(codUsuario);
// Assert
Assert.IsNotNull(result.Resultado);
}
[TestMethod]
public void Test_GetRolesByCodigoUsuario_WithInvalidInput_ReturnsFailure()
{
// Arrange
var client = new WSLoginLDAP();
var codUsuario = null;
// Act
var result = client.GetRolesByCodigoUsuario(codUsuario);
// Assert
Assert.IsFalse(result?.Exito ?? true);
}
cysnet.cun.coreSELECT SG0100.SG01COD, SG0100.SG01DES FROM SG0200
/// <summary> /// Retrieves get grupo by usuario /// </summary> /// <param name="usuario">TODO: describe usuario</param> /// <returns>RespGrupo</returns>
[TestMethod]
public void Test_GetGrupoByUsuario_ReturnsSuccess()
{
// Arrange
// NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
// NOTE: external dependency detected — consider mocking: Oracle DB
var client = new WSLoginLDAP();
var usuario = "test_value";
// Act
var result = client.GetGrupoByUsuario(usuario);
// Assert
Assert.IsNotNull(result);
Assert.IsTrue(result.Exito);
}
[TestMethod]
public void Test_GetGrupoByUsuario_WithInvalidInput_ReturnsFailure()
{
// Arrange
var client = new WSLoginLDAP();
var usuario = null;
// Act
var result = client.GetGrupoByUsuario(usuario);
// Assert
Assert.IsFalse(result?.Exito ?? true);
}
cysnet.cun.coreSELECT SG02NOM, SG02APE1, SG02APE2, SG02COD FROM SG0200
/// <summary> /// Obtiene obtener usuario intranet /// </summary> /// <param name="usuario">TODO: describe usuario</param> /// <returns>RespUsuarioIntranet</returns>
[TestMethod]
public void Test_ObtenerUsuarioIntranet_ReturnsSuccess()
{
// Arrange
// NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
// NOTE: external dependency detected — consider mocking: Oracle DB
var client = new WSLoginLDAP();
var usuario = "test_value";
// Act
var result = client.ObtenerUsuarioIntranet(usuario);
// Assert
Assert.IsNotNull(result);
Assert.IsTrue(result.Exito);
}
[TestMethod]
public void Test_ObtenerUsuarioIntranet_WithInvalidInput_ReturnsFailure()
{
// Arrange
var client = new WSLoginLDAP();
var usuario = null;
// Act
var result = client.ObtenerUsuarioIntranet(usuario);
// Assert
Assert.IsFalse(result?.Exito ?? true);
}
SELECT MIN(adaa00.adaadesarea) KEEP (DENSE_RANK FIRST ORDER BY adaa00.adaafecadd NULLS LAST) AS area, MIN(ag3900.ag39desgrupo) KEEP (DENSE_RANK FIRST ORDER BY ag4000.ag40fecadd NULLS LAST) AS grupo,
/// <summary> /// Executes pertenece centro cancer /// </summary> /// <param name="usuario">TODO: describe usuario</param> /// <returns>RespBool</returns>
[TestMethod]
public void Test_PerteneceCentroCancer_ReturnsSuccess()
{
// Arrange
// NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
// NOTE: external dependency detected — consider mocking: Oracle DB
var client = new WSLoginLDAP();
var usuario = "test_value";
// Act
var result = client.PerteneceCentroCancer(usuario);
// Assert
Assert.IsTrue(result.Exito);
}
[TestMethod]
public void Test_PerteneceCentroCancer_WithInvalidInput_ReturnsFailure()
{
// Arrange
var client = new WSLoginLDAP();
var usuario = null;
// Act
var result = client.PerteneceCentroCancer(usuario);
// Assert
Assert.IsFalse(result?.Exito ?? true);
}
SELECT DISTINCT SG0200.SG02COD, TR1100.TR11CODPERSONAL,
/// <summary> /// Obtiene obtener categoria profesional /// </summary> /// <param name="codUsuario">TODO: describe codUsuario</param> /// <returns>RespCategoria</returns>
[TestMethod]
public void Test_ObtenerCategoriaProfesional_ReturnsSuccess()
{
// Arrange
// NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
// NOTE: external dependency detected — consider mocking: Oracle DB
var client = new WSLoginLDAP();
var codUsuario = "test_value";
// Act
var result = client.ObtenerCategoriaProfesional(codUsuario);
// Assert
Assert.IsNotNull(result);
Assert.IsTrue(result.Exito);
}
[TestMethod]
public void Test_ObtenerCategoriaProfesional_WithInvalidInput_ReturnsFailure()
{
// Arrange
var client = new WSLoginLDAP();
var codUsuario = null;
// Act
var result = client.ObtenerCategoriaProfesional(codUsuario);
// Assert
Assert.IsFalse(result?.Exito ?? true);
}
SELECT adaa00.ADAADESAREA area, gcfn10(ag4000.SG02COD) usuario, sg0200.SG02COD, adaa00.ADAACODAREA, adaa00.ADAADESAREA, adaa00.AG39CODGRUPO, adaa00.PR16CODGRUPO, adaa00.AD47CODTIPOCODI_CIE, adaa00.AD47CODTIPOCODI_OMS, adaa00.AD47CODTIPOCODI_MORF, adaa00.PR98NUMCUEST_CORE, adaa00.PR98NUMCUEST_ESP, adaa00.PR16CODGRUPO_CITA
/// <summary> /// Obtiene obtener areas /// </summary> /// <param name="codUsuario">TODO: describe codUsuario</param> /// <returns>RespListArea</returns>
[TestMethod]
public void Test_ObtenerAreas_ReturnsSuccess()
{
// Arrange
// NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
// NOTE: external dependency detected — consider mocking: Oracle DB
var client = new WSLoginLDAP();
var codUsuario = "test_value";
// Act
var result = client.ObtenerAreas(codUsuario);
// Assert
Assert.IsNotNull(result.Resultado);
}
[TestMethod]
public void Test_ObtenerAreas_WithInvalidInput_ReturnsFailure()
{
// Arrange
var client = new WSLoginLDAP();
var codUsuario = null;
// Act
var result = client.ObtenerAreas(codUsuario);
// Assert
Assert.IsFalse(result?.Exito ?? true);
}
SELECT GCB100.GCB1CODPERSONAL, GCB100.GCB1FECINICONTRA, GCB100.GCB1FECFINCONTRA, GCB100.AD74CODCENTRO, GCB100.GCB1FECANTIG, GCB100.CI30CODSEXO ,AD7400.AD74DESLOCALID, (AD7400.AD74DESPROVI)
/// <summary> /// Obtiene obtener centro /// </summary> /// <param name="codUsuario">TODO: describe codUsuario</param> /// <returns>RespCentro</returns>
[TestMethod]
public void Test_ObtenerCentro_ReturnsSuccess()
{
// Arrange
// NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
// NOTE: external dependency detected — consider mocking: Oracle DB
var client = new WSLoginLDAP();
var codUsuario = "test_value";
// Act
var result = client.ObtenerCentro(codUsuario);
// Assert
Assert.IsNotNull(result);
Assert.IsTrue(result.Exito);
}
[TestMethod]
public void Test_ObtenerCentro_WithInvalidInput_ReturnsFailure()
{
// Arrange
var client = new WSLoginLDAP();
var codUsuario = null;
// Act
var result = client.ObtenerCentro(codUsuario);
// Assert
Assert.IsFalse(result?.Exito ?? true);
}
SELECT sg0200.SG02CODWINDOWS,
select distinct sg02cod, sg02nom, sg02ape1, sg02ape2, sg02email, sg02codwindows, ad7400.ad74deslocalid,
/// <summary> /// Obtiene obtener usuario intranet c s v /// </summary> /// <returns>RespUsuarioIntranetCSV</returns>
[TestMethod]
public void Test_ObtenerUsuarioIntranetCSV_ReturnsSuccess()
{
// Arrange
// NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
// NOTE: external dependency detected — consider mocking: Oracle DB
var client = new WSLoginLDAP();
// Act
var result = client.ObtenerUsuarioIntranetCSV();
// Assert
Assert.IsNotNull(result);
Assert.IsTrue(result.Exito);
}
[TestMethod]
public void Test_ObtenerUsuarioIntranetCSV_WithInvalidInput_ReturnsFailure()
{
// Arrange
var client = new WSLoginLDAP();
// Act
var result = client.ObtenerUsuarioIntranetCSV();
// Assert
Assert.IsFalse(result?.Exito ?? true);
}
Helper methods inside the service implementation — not part of the public contract.
| File | Query | Tables |
|---|---|---|
| WSLoginLDAP.svc.cs | SELECT SG02NOM, SG02APE1, SG02APE2, SG02COD FROM SG0200 WHERE UPPER(SG02CODWINDOWS) = UPPER(:usuario) |
SG0200 |
| WSLoginLDAP.svc.cs | SELECT SG06.SG03COD FROM SG0200 SG02 LEFT JOIN SG0600 SG06 ON SG06.SG01COD = SG02.SG01COD WHERE UPPER(SG02.SG02CODWINDOWS) = UPPER(:usuario) |
SG0200 SG0600 |
| WSLoginLDAP.svc.cs | SELECT SG06.SG03COD FROM SG0200 SG02 |
SG0200 |
| WSLoginLDAP.svc.cs | SELECT SG0100.SG01COD, SG0100.SG01DES FROM SG0200 |
SG0200 |
| WSLoginLDAP.svc.cs | SELECT SG02NOM, SG02APE1, SG02APE2, SG02COD FROM SG0200 |
SG0200 |
| WSLoginLDAP.svc.cs | SELECT MIN(adaa00.adaadesarea) KEEP (DENSE_RANK FIRST ORDER BY adaa00.adaafecadd NULLS LAST) AS area, MIN(ag3900.ag39desgrupo) KEEP (DENSE_RANK FIRST ORDER BY ag4000.ag40fecadd NULLS LAST) AS grupo, |
|
| WSLoginLDAP.svc.cs | SELECT DISTINCT SG0200.SG02COD, TR1100.TR11CODPERSONAL, |
|
| WSLoginLDAP.svc.cs | SELECT adaa00.ADAADESAREA area, gcfn10(ag4000.SG02COD) usuario, sg0200.SG02COD, adaa00.ADAACODAREA, adaa00.ADAADESAREA, adaa00.AG39CODGRUPO, adaa00.PR16CODGRUPO, adaa00.AD47CODTIPOCODI_CIE, adaa00.AD47CODTIPOCODI_OMS, adaa00.AD47CODTIPOCODI_MORF, adaa00.PR98NUMCUEST_CORE, adaa00.PR98NUMCUEST_ESP, adaa00.PR16CODGRUPO_CITA |
|
| WSLoginLDAP.svc.cs | SELECT GCB100.GCB1CODPERSONAL, GCB100.GCB1FECINICONTRA, GCB100.GCB1FECFINCONTRA, GCB100.AD74CODCENTRO, GCB100.GCB1FECANTIG, GCB100.CI30CODSEXO ,AD7400.AD74DESLOCALID, (AD7400.AD74DESPROVI) |
|
| WSLoginLDAP.svc.cs | SELECT sg0200.SG02CODWINDOWS, |
|
| WSLoginLDAP.svc.cs | select distinct sg02cod, sg02nom, sg02ape1, sg02ape2, sg02email, sg02codwindows, ad7400.ad74deslocalid, |
|
| WSLoginLDAP.svc.cs | SELECT 1 FROM ag4000 WHERE ag4000.ag39codgrupo = :codGrupo AND ag4000.SG02COD = UPPER(:codUsuario) |
ag4000 |