Buscar contenidos

jueves, 27 de abril de 2017

Administrar certificados / Manage Trusted Root Certificates


Link Articulo


Paso #1

Paso #2


Transformaciones Web.config para cada ambiente


Link de artículo

Paso #1

Paso #2


Paso#3




Ejemplo #1


<configuration> <appSettings> <add key="APIKey" value="5200eb9e591cc4a19178f8fac1c210fc"/> <add key="Secret" value="e957123205f4a7f7a95e2d352bcaf444"/> <add key="ServiceBase" value="http://localhost:49396/"/> <add key="Callback" value="http://localhost:26813/101FTB/"/> </appSettings> <connectionStrings> <add name="MyDBConnectionString" connectionString="Data Source=localhost;Initial Catalog=FreeTechBooks;User ID=Guest" providerName="System.Data.SqlClient"/> </connectionStrings> ... </configuration>



<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <appSettings> <add value="a44a569d89f09862bdeac3e9e7c155aa" xdt:Transform="SetAttributes(value)" xdt:Locator="Condition(@key='APIKey')"/> <add value="9a6e6fbda2558fad51f25b7f62bad80d" xdt:Transform="SetAttributes(value)" xdt:Locator="Condition(@key='Secret')"/> <add value="http://www.mysitelive.com/" xdt:Transform="SetAttributes(value)" xdt:Locator="Condition(@key='ServiceBase')"/> <add value="http://fbapps.mysitelive.com/myapplive/" xdt:Transform="SetAttributes(value)" xdt:Locator="Condition(@key='Callback')"/> </appSettings> <connectionStrings> <add name="MyDBConnectionString" connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings> <system.web> </system.web> </configuration>


Ejemplo #2

Web.config
<tokenValidatorSection validateTokenSignature="true" certificateStoreName="My" certificateStoreLocation="CurrentUser" />

Web.Debug.config
<tokenValidatorSection validateTokenSignature="true" certificateStoreName="Root" certificateStoreLocation="LocalMachine" xdt:Transform="SetAttributes(certificateStoreName,certificateStoreLocation)"   />

lunes, 24 de abril de 2017

Expresiones Regulares Imprescindibles












...una expresión regular (o patrón) es una expresión que describe un conjunto de cadenas sin enumerar sus elementos.


Link artículo



Validar una URL:
/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \?=.-]*)*\/?$/

Validar un E-mail:
^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$

Comprobar la seguridad de una contraseña:
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$

De esta forma comprobaremos:
Contraseñas que contengan al menos una letra mayúscula.
Contraseñas que contengan al menos una letra minúscula.
Contraseñas que contengan al menos un número o caracter especial.
Contraseñas cuya longitud sea como mínimo 8 caracteres.
Contraseñas cuya longitud máxima no debe ser arbitrariamente limitada.

Validar un número de teléfono:
^\+?\d{1,3}?[- .]?\(?(?:\d{2,3})\)?[- .]?\d\d\d[- .]?\d\d\d\d$

Validar número de tarjeta de crédito:
^((67\d{2})|(4\d{3})|(5[1-5]\d{2})|(6011))(-?\s?\d{4}){3}|(3[4,7])\ d{2}-?\s?\d{6}-?\s?\d{5}$

Validar una dirección IP:
/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/

Validar un nombre de usuario:
/^[a-z\d_]{4,15}$/i

Con un mínimo de 4 y un máximo de 15 caracteres, además el nombre estaría utilizando sólo caracteres de la A-z y números

viernes, 21 de abril de 2017

Concepto del lenguaje XSLT ?


XSLT (eXtensible Stylesheet Language for Transformations) es un lenguaje que permite aplicar una transformación a un documento XML para obtener otro documento XML, un documento HTML o un documento de texto plano.

Link artículo


Método de transformación 

     public static string Transform_Xslt_Xml(string xmlContent, string XsltContent)
        {
            string output = String.Empty;
            using (StringReader srt = new StringReader(XsltContent))
            using (StringReader sri = new StringReader(xmlContent))            {
                using (XmlReader xrt = XmlReader.Create(srt))
                using (XmlReader xri = XmlReader.Create(sri))
                {
                    XslCompiledTransform xslt = new XslCompiledTransform();
                    xslt.Load(xrt);
                    using (StringWriter sw = new StringWriter())
                    using (XmlWriter xwo = XmlWriter.Create(sw, xslt.OutputSettings))
                    {
                        xslt.Transform(xri, xwo);
                        output = sw.ToString();
                    }
                }
            }

            return output;

        }


Ejemplo de uso:




Código Fuente


https://www.xmltutorial.info/xslt/xslvariable/




  <xsl:variable name="CreatedDate" select="@createDate"/>
  <xsl:variable name="IDAppendedDate" select="2012-01-01" />
  <b>date: <xsl:value-of select="$CreatedDate"/></b> 

  <xsl:if test="$CreatedDate > $IDAppendedDate">
    <h2> mooooooooooooo </h2>
  </xsl:if>
  <xsl:else>
    <h2> dooooooooooooo </h2>
  </xsl:else>

   <xsl:choose>
     <xsl:when test="$CreatedDate > $IDAppendedDate">
       <h2>mooooooooooooo</h2>
     </xsl:when>
     <xsl:when test="$CreatedDate = $IDAppendedDate">
       <h2>booooooooooooo</h2>
     </xsl:when>
     <xsl:otherwise>
      <h2>dooooooooooooo</h2>
     </xsl:otherwise>
   </xsl:choose>


jueves, 20 de abril de 2017

WebApp para administración dinámica de reglas C#/Bootstrap/MVC

 Vista:
Cargar columnas con su tipo de dato:


   public Dictionary<string, string> GetDictionaryCampos()
        {
            Dictionary<string, string> d = new Dictionary<string, string>();

            d.Add("columna1~string", "Ejemplo1");
            d.Add("columna2~int", "Ejemplo2");
            d.Add("columna3~decimal", "Ejemplo3");
            d.Add("columna4~datetime", "Ejemplo4");
               
            return d;
        }


Generación XML de reglas agregadas:




Creación de tabla:


BEGIN TRAN

USE [DataBase]
GO

/****** Object:  Table [dbo].[RulesManager]    Script Date: 04/20/2017 14:57:42 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[RulesManager](
       [ID_Rule] [int] IDENTITY(1,1) NOT NULL,
       [Name] [varchar](200) NOT NULL,
       [CreationDate] [datetime] NOT NULL,
       [ModificationDate] [datetime] NOT NULL,
       [RulesXml] [xml] NOT NULL,
       [RulesHtml] [nvarchar](max) NOT NULL,
 CONSTRAINT [PK_RulesManager] PRIMARY KEY CLUSTERED
(
       [ID_Rule] 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

SET ANSI_PADDING OFF
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'''''' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'RulesManager', @level2type=N'COLUMN',@level2name=N'Name'
GO

ALTER TABLE [dbo].[RulesManager] ADD  CONSTRAINT [DF_RulesManager_Name]  DEFAULT ('') FOR [Name]
GO

ALTER TABLE [dbo].[RulesManager] ADD  CONSTRAINT [DF_RulesManager_CreationDate]  DEFAULT (getdate()) FOR [CreationDate]
GO

ALTER TABLE [dbo].[RulesManager] ADD  CONSTRAINT [DF_RulesManager_ModificationDate]  DEFAULT (getdate()) FOR [ModificationDate]
GO

ALTER TABLE [dbo].[RulesManager] ADD  CONSTRAINT [DF_RulesManager_RulesXml]  DEFAULT ('') FOR [RulesXml]
GO

ALTER TABLE [dbo].[RulesManager] ADD  CONSTRAINT [DF_RulesManager_RulesHtml]  DEFAULT ('') FOR [RulesHtml]
GO

ROLLBACK








miércoles, 19 de abril de 2017

Páginas varias de interés




  1. http://www.devjoker.com/
  2. https://blog.sqlauthority.com/
  3. https://www.codeproject.com
  4. https://stackoverflow.com/
  5. https://danielggarcia.wordpress.com/
  6. https://codigofuentenet.wordpress.com/
  7. http://www.variablenotfound.com/
  8. https://desarrolloweb.com
  9. https://www.codecademy.com
  10. https://geeks.ms/
  11. https://www.bbvaapimarket.com/