C# buscando usuários no AD

Existe muito material na Internet sobre como efetuar uma busca no Active Directory (AD) utilizando C#, porém, em poucos lugares encontrei como efetuar um filtro por mais que uma condição.

No exemplo abaixo, estou pesquisando usuários (user), do tipo pessoas (person) e que sejam membros do grupo Office365.

Veja só:

ds.Filter = string.Format("(&(&({0}) {1}) {2})", "objectClass=user", "(objectCategory=person)", "(memberOf=CN=Office365,DC=infopass,DC=tix11,DC=com)");

O filtro ficará assim:

(&(& (objectClass=user) (objectCategory=person) (memberOf=CN=Office365,DC=infopass,DC=tix11,DC=com)) 

Isso quer dizer em “portugol”:

objectClass=user E objectCategory=person E memberOf=CN=Office365,DC=infopass,DC=tix11,DC=com

Se precisar usar um OU, use | ao invés de &.

Um pequeno trecho do código para ajudar mais:

DirectoryEntry de = GetDirectoryEntry();
DirectoryEntry rag = null;
object obj = de.NativeObject;
DirectorySearcher ds = new DirectorySearcher(de);
ds.Filter = string.Format("(&(&({0}) {1}) {2})", "objectClass=user", "(objectCategory=person)", "(memberOf=CN=Office365,DC=infopass,DC=tix11,DC=com)");
ds.SearchScope = SearchScope.Subtree;
SearchResultCollection results = ds.FindAll();
Console.WriteLine("Usuarios encontrados no grupo Office365 - " + results.Count);
....
foreach (SearchResult result in results)
{
    rag = (DirectoryEntry)result.GetDirectoryEntry();
....

Enjoy!

CategoriasC# Tags:, , , , ,

Imprimindo Statements no log do WebSphere

Uma necessidade comum é imprimir statemens e prepared statements no console do Websphere. Isso é facil!

Habilitando o trace no arquivo trace.log (normalmente localizado na pasta appServer01/profiles/server1/logs ) você irão ver os statements como no exemplo:

[8/4/14 14:16:40:328 GMT] 0000002b WSJccPrepared >  <init> Entry
com.ibm.db2.jcc.c.uf@58d858d8
com.ibm.ws.rsadapter.jdbc.WSJccSQLJConnection@453c453c
CLOSE CURSORS AT COMMIT (2)
PSTMT: INSERT INTO DB2PRD.THIST_OPER_FUTUR (CINDCD_CATEG_OPER, CINDCD_MCADO_LELAO, CINDCD_NEGOC_DIFRD, CINDCD_NEGOC_OPER, CINDCD_PARTC_LIQDC, CINDCD_TRNSF_PTFOL, CMCADO_FUTUR_CONTR, CMEIO_NEGOC_TESOU, CMERCD_FINCR, CTPO_MANUT_REG, CTPO_MERCD_TESOU, CUSUAR_MANUT, HINCL_REG_HIST, NCRRET_VLRS, NORIGE_NEGOC_TESOU, NSEQ_OPER_TESOU, NTPO_RISCO_TESOU, NVCTO_MCADO_FUTUR, QDIA_CORRI_OPER, QDIA_UTIL_OPER, QNEGOC_OPER, RJUSTF_TRNSF_PTFOL, VAJUST_DOLAR_INTL, VBASE_CURTO_OPER, VPRECO_UNTAR_OPER, VTX_NEGOC_OPER, VEMOLU_NORML_OPER, VEMOLU_DIA_OPER, NSEQ_OPER_DSBTO) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 1003 1007 2 0 4
[8/4/14 14:16:40:328 GMT] 0000002b WSJccPrepared ... 

A configuração é bem extensível, dá pra brincar bastante.

Para habilitar, vá no Admin console do Websphere -> Resolução de Problemas -> Logs e Rastreios  e selecione seu servidor.

Vá em Rastreio de Diagnostico

Alterar Niveis de Detalhes do Log

Adicione as informações abaixo:

WAS.database=finest: com.ibm.ws.rsadapter.jdbc.WSJdbcCallableStatement=finer: com.ibm.ws.rsadapter.jdbc.WSJdbcStatement=finer: com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement=finer: com.ibm.ws.rsadapter.jdbc.WSJccCallableStatement=finer: com.ibm.ws.rsadapter.jdbc.WSJccStatement=finer: com.ibm.ws.rsadapter.jdbc.WSJccPreparedStatement=finer

Salve, reinicie o servidor e voa lá!

Claro que o arquivo tende a ficar gigantesco conforme uso!

Recomendo utilizar uma ferramenta como o TAIL para ver o Log.

Veja também que temos milhares de outros parâmetros para logar e nos ajudar.

Enjoy!

Criando um Event Monitor no DB2

Muitas vezes precisamos logar os eventos que acontecem em nosso banco de dados DB2, normalmente, para monitorar desempenho, queries mais utilizadas, etc.

Criar um Event Monitor é uma das soluções mais simples e rapidas para monitoração. O procedimento abaixo mostra como criar um simples, que vai logar os eventos de seu banco:

– conecte no seu banco: db2 connect to banco user fulano using senha

– Criar o monitor de eventos
db2 “CREATE EVENT MONITOR monjmm FOR STATEMENTS WRITE TO FILE ‘c:\tmp'” — verificar se o destino c:\tmp existe e é possivel escrever no mesmo
 
– liga o monitor de eventos
db2 SET EVENT MONITOR monjmm STATE = 1
 
– Use o banco!
 
– Desligue o monitor de eventos
db2 SET EVENT MONITOR monjmm STATE = 0
 
– torne o output legivel
db2evmon -path c:\tmp > c:\tmp\filtered.out — Tem que dar permissao de leitura para os arquivos criados
 
– veja os eventos abrindo o arquivo com o bloco de notas
notepad c:\tmp\filtered.out
 
– deletar o monitor
db2 DROP EVENT MONITOR monjmm

Enjoy!

Commit template at Git Extensions

In order to create and share commit templates at Git Extensions (a GUI utility for GIT), you must edit the file GitExtensions.settings , located somewhere like (at windows) C:\Users\<your user>\AppData\Roaming\GitExtensions\GitExtensions

Search for a session with the name CommitTemplates. It accept 5 patterns.

Each pattern follow the format:

{“Name”:””,”Text”:””}

You can use something like:

{“Name”:”Default Comment Template”,”Text”:”Sprint X – Task – Y”}

See the session

  <item>
    <key>
      <string>CommitTemplates</string>
    </key>
    <value>
      <string>[{“Name”:”Task”,”Text”:”[SP 999 : TASK 999] XXX”},{“Name”:”BUG”,”Text”:”[BUG 999 : SP 999] ERRO”},{“Name”:””,”Text”:””},{“Name”:””,”Text”:””},{“Name”:””,”Text”:””}]</string>
    </value>
  </item>
 
 Enjoy!

CategoriasGit Tags:, ,

Resolvendo problemas de Debug RAD 7 e 7.5

Eventualmente notamos que a função de Debug no RAD (Rational Application Developer) para de funcionar. Existe uma lenda urbana que diz que alterando uma porta isso se resolve, e realmente, após fazer isso, meu Debug nunca mais parou de funcionar. Segue o procedimento:

Faça o seguinte procedimento para resolver o problema, porém, utilize outra porta que não seja a 7777. (Está é a default é que gera problemas).
No meu caso usei a 7778

The instructions seem to be a little out of date so here are my instructions.
1.    Log into your Integrated Solutions Console.  The default URL is http://localhost:9060/ibm/console/login.do.
2.    Navigate using the left side column to Servers –> Application Servers.
3.    Select the Application server you want to debug from the list of Application servers.
4.    Under the Configuration tab select the Debugging Service link which is near the bottom right in the Additional Properties section.
5.    Select the “Enable service at server startup” checkbox.  Change the JVM debug port to other ex: 7778.
6.    Press the Apply button.
7.    In the Messages box, which appeared at the top after pressing the Apply button, click on the Save link.
8.    Stop and start your Application Server.  It should now be running in Debug mode.
9.    In RAD go to the project for the web application you want to debug.

Enjoy!

 

CategoriasJAVA Tags:, , ,

Descobrindo a versão do DB2 via SQL

Várias vezes precisamos descobrir a versão do DB2, e só estamos conectados na instancia. Com a query abaixo, seu problemas acabaram-se:

SELECT service_level, fixpack_num FROM TABLE (sysproc.env_get_inst_info()) as INSTANCEINFO

Descobrindo colunas/tabelas envolvidas em erros no DB2

Quem nunca teve que fazer um insert em uma tabela e deu algum erro no insert e não sabia de que campo se tratava?
Geralmente ele retornaria algo parecido com isso:

Error: DB2 SQL error: SQLCODE: -530, SQLSTATE: 23503, SQLERRMC: DB2PRD.THIST_OPER_VARVL.SQL140701170852720
SQLState: 23503
ErrorCode: -530

Ele retorna falando do ID da Chave, com a query abaixo, você consegue ver de que tabela/campos se trata:

SELECT * FROM SYSCAT.KEYCOLUSE WHERE CONSTNAME = ‘SQL140701170852720′

Enjoy

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 153 outros seguidores