iT Synergy Blogs

Growing Innovation - Soluciones a problemas reales

  • Facebook
  • Instagram
  • LinkedIn
  • Phone
  • Twitter
  • YouTube

Copyright © 2025 · iT Synergy·

BizTalk 2009 Hotfix para arreglar los problemas que se presentan con Visual Studio 2008
BizTalk 2009 Hotfix para arreglar los problemas que se presentan con Visual Studio 2008 avatar

February 25, 2010 By Sonia Elizabeth Soriano Contreras Leave a Comment

Cuando se desarrolla con Visual Studio 2008, proyectos de BizTalk 2009 que referencian otros proyectos de BizTalk que estan en visual studio en una máquina que tiene BizTalk Server 2009 instalado se presenta un error de referencias al compilar o hacer deploy que se arregla con el hotfix que se encuentra en el siguiente link:

 

http://support.microsoft.com/kb/977428/en-us

 

El hotfix se debe solicitar y llega por correo electrónico.

Filed Under: BizTalk, BizTalk 2010 configurations, BizTalk Application, SOA

Politica Windows Role Provider Authorization para MSE
Politica Windows Role Provider Authorization para MSE avatar

February 23, 2010 By Marco Antonio Hernández Prado Leave a Comment

He realizado varios demos con MSE mostrando las ventajas que podemos tener al virtualizar fácilmente los servicios y administrarlos con políticas como las que vienen  con la Guía de Seguridad, la que me ilustro en el proceso fue SqlProviderSecurity, esta política nos permite tener una autenticación al servicio WCF por medio de un usuario y contraseña, este usuario se autenticaría en la base de datos aspnetdb la cual refleja el modelo Membership, así mismo para la autorización se extraen los roles configurados en esta base de datos.

Adicional a esta podemos validar que roles pueden acceder a las operaciones expuestas en todos los endpoint para esto usamos RoleProviderAuthorization.

Bueno como ya había colocado el post en codeplex, donde veíamos que este ejemplo era bueno el mundo real era otro, la mayoría teníamos que validar y autenticar con usuarios Windows!!

Es por eso que investigue el código de la Guía e Implemente un Windows Role Provider Authorization.

Lo primero que tenemos que tener en cuenta es que no cree una política que me permitir autenticar en Windows, ya que esto lo hace cualquier binding  de MSE que tenga las características clientCredentialType=”Windows”, ya con esto el usuario envía su identificación (el usuario ya se autentico). Lo que desarrolle fue la validación de roles de usuario para las operaciones permitidas, estas fueron las nuevas clases implementadas:

Clases Nuevas:

  • Microsoft.MSE.Behaviors.Security.Configuration.WindowsRoleProviderAuthorizationElement
  • Microsoft.MSE.Behaviors.Security.WindowsRoleProviderAuthorizationBehavior.cs
  • Microsoft.MSE.Behaviors.Security.WindowsRoleProviderAuthorizationParameterInspector.cs
  • Microsoft.MSE.Behaviors.Security.WindowsRoleProviderServiceAuthorizationManager.cs
  • Microsoft.MSE.PolicyDesigners.Security.WindowsRoleAuthzAssertionUI.xaml

La implementacion importante fue para la clase WindowsRoleProviderServiceAuthorizationManager

1. Las operaciones en MSE 7.5.29  ahora tienen una nueva propiedad llamada Action, esta nos permiten tener un mismo nombre de operacion con Action diferentes, debido a eso comentarie esta linea en la clase

//I comment the action because we can have many 
//Operations with the same Name for diferents
  //endpoints. With MSE 7.5.29.0 we can differ the operations by the action
   //action = action.IndexOf(':') > 0 ? action.Substring(0, action.IndexOf(':'))

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

2. Y He aquí las línea que use para obtener roles, acordémonos que no utilizo provider porque vamos a obtener los roles del token de Windows, esta forma de hacerla me gusta debido a que el rendimiento es alto comparado con otros métodos como ir al LDAP a traer información

string[] userRoles = GetRoles(operationContext.ServiceSecurityContext.WindowsIdentity);

NOTA: en el código que adjunto imprimí en Debug los Grupos de Dominio y de Equipo que tiene el usuario, eliminar esta línea y todas la que tenga Trace del código para producción

  private static string[] GetRoles(WindowsIdentity id)
        {
            List<string> groups = new List<string>();
            IdentityReferenceCollection IRC = id.Groups.Translate(typeof(NTAccount));

            foreach (NTAccount acc in IRC)
            {
                groups.Add(acc.Value);
                System.Diagnostics.Trace.WriteLine("Grupo de Windows: "+ acc.Value);
            }
            return groups.ToArray();
        }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

 

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Después de la compilación va la instalaciones de la Guía de Seguridad con el nuevo assertion:

 

Ya podemos visualizar aquí nuestro nuevo WindowsRoleProviderAuthorization Assertion

 

 

Podemos configurar Los Grupos del Equipo y sobretodo del dominio para asociar que operaciones tiene permiso de ejecución

Aquí tengo un binding que usa Tipo de Autenticación Windows, estos los debemos usar para que nuestra política funcione

O podemos usar el binding NetTCP del MSE

<bindings xmlns="">
  <netTcpBinding>
    <binding name="netTcp" closeTimeout="00:01:00"
             openTimeout="00:01:00" receiveTimeout="00:10:00"
            sendTimeout="00:01:00" transactionFlow="false" 
           transferMode="Buffered" transactionProtocol="OleTransactions" 
           hostNameComparisonMode="StrongWildcard" listenBacklog="10"
           maxBufferPoolSize="524288" maxBufferSize="65536"
           maxConnections="10" maxReceivedMessageSize="65536">
      <readerQuotas maxDepth="32" maxStringContentLength="8192"
                                maxArrayLength="16384" maxBytesPerRead="4096"
                                maxNameTableCharCount="16384">
      </readerQuotas>
      <reliableSession ordered="true" inactivityTimeout="00:10:00" 
                                enabled="false">
      </reliableSession>
      <security mode="Transport">
        <transport clientCredentialType="Windows" 
                         protectionLevel="EncryptAndSign">
        </transport>
        <message clientCredentialType="Windows">
        </message>
      </security>
    </binding>
  </netTcpBinding>
</bindings>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Aquí pueden descargar el codigo fuente: Microsoft.MSE.SecurityGuide_With_WindowsRoleProviderAuthorization

Filed Under: MSE, SOA Tagged With: MSE

Habilitar mex con binding netTcpBinding en vez de mexTcpBinding
Habilitar mex con binding netTcpBinding en vez de mexTcpBinding avatar

February 22, 2010 By Marco Antonio Hernández Prado Leave a Comment

 

He aquí otra vez tratando de exponer mex para binding netTCP, el escenario que yo tenía era el siguiente:

Servicios WCF expuestos por binding netTCP y WSHttp, los endpoint netTCP les tenía un binding customBinding, cuando aplicaba la típica configuración  que me recomendaban en el post a todo el mundo le funcionaba pero a mí me generaba un error, como este

Aqui la recomendación

<endpoint address="mex"
    binding="mexTcpBinding"
contract="IMetadataExchange" bindingConfiguration="mexBinding"   /> 

to

<endpoint address="mex"
    binding="netTcpBinding"
contract="IMetadataExchange" bindingConfiguration="mexBinding"   />

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Resulta que me escenario era diferente, tenía un endpoint así:

<!--Endpoint netTCPCustom-->
<endpoint address="" binding="customBinding"
bindingConfiguration="customTcpBinding_Funcionalidad"
      name="Custom_netTCPEndPoint_Funcionalidad"
      contract="Contrato.Funciolidad">
    <identity>
          <dns value="localhost" />
    </identity>
</endpoint>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Con un binding así:

<bindings>        
          <customBinding>
              <binding name="customTcpBinding_Funcionalidad">
                  <binaryMessageEncoding 
maxReadPoolSize="1024" 
maxWritePoolSize="1024" maxSessionSize="32768">
                      <readerQuotas maxDepth="1024" 
maxStringContentLength="262144"
 maxArrayLength="262144"
                     maxBytesPerRead="32768" maxNameTableCharCount="262144"/>
                  </binaryMessageEncoding>
                  <windowsStreamSecurity/>    
                  <tcpTransport manualAddressing="false" 
maxBufferPoolSize="524288"
 maxReceivedMessageSize="524288"
                        
  connectionBufferSize="65536" hostNameComparisonMode="StrongWildcard"
                        
  channelInitializationTimeout="00:01:00"
 maxBufferSize="524288"
                         
 maxPendingConnections="200" maxOutputDelay="00:00:00.2000000"
                        
  maxPendingAccepts="200" transferMode="Buffered" listenBacklog="500"
                        
  portSharingEnabled="false" teredoEnabled="false">
                      <connectionPoolSettings groupName="default" 
leaseTimeout="00:30:00" idleTimeout="00:30:00"
                                              
maxOutboundConnectionsPerEndpoint="300"/>
                  </tcpTransport>
              </binding>
          </customBinding>
      </bindings>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Tenía que agregar un endpoint para mex así:

<endpoint address="mex" binding="customBinding"
 contract="IMetadataExchange"
 bindingConfiguration="customTcpBinding_Funcionalidad"   />

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Conclusión:

El error lo decía, las configuraciones del enpoint no concuerdan con las que se han configurado para otro servicios o endpoints.

Lo ejemplos siempre hablan de configuraciones básicas, un endpoint ya configurado binding netTCP, pero yo tenía un customBinding con una cantidad de configuraciones realizadas para tunning, lo que hacía como decía el ejemplo era cambiar mexTcpBinding por netTcpBinding, yo tenía era que cambiarlo por customBinding, con esto ya mi endpoint mex funcionaria pero solo agregando una configuración de binding igual a la que ya tenía en el otro endpoint por eso volví a utilizar el binding que ya tenía y coloque esto: bindingConfiguration=”customTcpBinding_Funcionalidad” , y listo ya tenía porfin mi endpoint netTCP y mi endpoint mex

Filed Under: .NET, WCF Tagged With: .NET, WCF

  • « Previous Page
  • 1
  • …
  • 66
  • 67
  • 68
  • 69
  • 70
  • …
  • 72
  • Next Page »

Team


Marco
Antonio Hernández

Jaime
Alonso Páez

Luis
Carlos Bernal

Ana
María Orozco

Juan
Camilo Zapata

Carlos
Alberto Rueda

Sonia
Elizabeth Soriano

Diana
Díaz Grijalba

Alexandra
Bravo Restrepo

Bernardo
Enrique Cardales

Juan
Alberto Vélez

Jhon
Jairo Rodriguez

Diana
Paola Padilla

Gustavo
Adolfo Echeverry

Yully
Arias Castillo

Carlos
Andrés Vélez

Brayan
Ruiz

Jesús
Javier Hernández

Alejandro
Garcia Forero

Natalia
Zartha Suárez

Josué
Leonardo Bohórquez

Oscar
Alberto Urrea

Odahir
Rolando Salcedo

Jimmy
Quejada Meneses

Juan
Mauricio García

Mario
Andrés Cortés

Eric
Yovanny Martinez

Carolina
Torres Rodríguez

Tag Cloud

.NET (9) 940px (1) Analysis Services mdx (1) An attempt was made to load a program with an incorrect format. (1) ASP.NET MVC (1) Azure (3) Backup (1) BAM (7) BAM API (1) BAMTraceException (2) BI (3) BizTalk (24) Business Intelligence (6) C# (2) caracteristicas de publicacion (2) Content Editor (3) ESB (15) ESB Toolkit (3) General (4) habilitar caracteristicas (3) indexes (2) Integration Services (2) Master Page (3) MDX (2) MSE (11) net.tcp (2) Office 365 (2) Oracle (2) Performance Point (2) Public Website (2) Receive Location (2) SDK (2) Servicio Web (2) Sharepoint 2010 (2) SharePoint 2013 (4) SharePoint Online (2) SOA (8) Soap Fault (2) Sort Months MDX (2) SQL Server (2) Visual (2) Visual Studio 2010 (2) WCF (19) Windows (3) Windows 8 (17)

Categories

  • .NET (33)
  • Analysis Services (1)
  • ASP.NET MVC (2)
  • Azure (7)
  • BAM (9)
  • BAM PrimaryImport (3)
  • BigData (1)
  • BizTalk (77)
  • BizTalk 2010 configurations (57)
  • BizTalk Application (60)
  • BizTalk Services (13)
  • Business Intelligence (4)
  • Cloud (3)
  • CMD (1)
  • CodeSmith – NetTiers (2)
  • CommandPrompt (1)
  • CRM OptionSet mapping component (1)
  • Desarrollo de software (6)
  • develop (6)
  • developers (3)
  • DropBox (1)
  • Dynamics (1)
  • Enterprise Architect (1)
  • Entity Framework (1)
  • Errores BizTalk (2)
  • ESB (27)
  • ETL (1)
  • Event Viewer (1)
  • Excel Services (1)
  • Foreach loop container (1)
  • General (4)
  • Gerencia de Proyectos (2)
  • Google (1)
  • Grouped Slices (1)
  • Human Talent (1)
  • IIS (4)
  • Integración (6)
  • Integration Services (3)
  • KingswaySoft (1)
  • Lync (1)
  • MSE (13)
  • Office 365 (2)
  • Oracle Data Adapter (2)
  • Performance Point (4)
  • Picklist (1)
  • Pivot Table (1)
  • Procesos (1)
  • Pruebas (1)
  • Public Website (2)
  • Reports (1)
  • SCRUM (1)
  • SDK (2)
  • SEO (1)
  • Servicios (2)
  • Sharepoint (9)
  • SharePoint 2010 (10)
  • SharePoint 2013 (4)
  • SharePoint Online (2)
  • SharpBox (1)
  • Shortcuts (1)
  • Sin categoría (1)
  • SOA (50)
  • SQL (5)
  • SQL Server (3)
  • SQL Server Management Studio (1)
  • SSIS (3)
  • SSL (1)
  • SSO (1)
  • Tracking Profile Editor (2)
  • Twitter (1)
  • Uncategorized (1)
  • Virtual Network (2)
  • Visual Studio 11 (1)
  • Visual Studio 2010 (2)
  • Visual Studio Online (1)
  • VMware (2)
  • WCF (24)
  • Web (1)
  • Web Api (1)
  • Windows (5)
  • Windows 8 (11)
  • Windows Azure (2)
  • Windows Live Write (1)
  • Windows Phone (7)
  • Windows Phone 8 (1)
  • Windows Scheduler (1)
  • windows8 (2)
  • WindowsRT (3)
  • WP7 SDK (1)

Manage

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org