AJUDA CONVERSÃO C# PARA VB.NET

 Tópico anterior Próximo tópico Novo tópico

AJUDA CONVERSÃO C# PARA VB.NET

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#485727 - 03/12/2018 10:18:07

ALEVALE
JUNDIAI
Cadast. em:Março/2012


Bom dia,

Alguém poderia verificar se o código que eu converti está correto, sinceramente não uso C# então não sei se foi convertido corretamente, na realidade estou na dúvida dessas 2 linhas:
<DirectoryObjectClass("group")>
<DirectoryRdnPrefix("CN")>

Fonte:
https://www.codeproject.com/Articles/118122/How-to-use-AD-Attributes-not-represented-in-UserPr

Original:
[DirectoryObjectClass("group")]
[DirectoryRdnPrefix("CN")]

public class GroupPrincipalsEx : GroupPrincipal
{
    public GroupPrincipalsEx(PrincipalContext context) : base(context) { }

    public GroupPrincipalsEx(PrincipalContext context, string samAccountName)
        : base(context, samAccountName)
    {
    }

    [DirectoryProperty("wWWHomePage")]
    public string wWWHomePage
    {
        get
        {
            if (ExtensionGet("wWWHomePage").Length != 1)
                return null;

            return (string)ExtensionGet("wWWHomePage")[0];

        }
        set { this.ExtensionSet("wWWHomePage", value); }
    }
}


Convertido:

Imports System.DirectoryServices.AccountManagement

<DirectoryObjectClass("group")>
<DirectoryRdnPrefix("CN")>
Public Class GroupPrincipalsEx
    Inherits GroupPrincipal

    Public Sub New(ByVal context As PrincipalContext)
        MyBase.New(context)
    End Sub

    Public Sub New(ByVal context As PrincipalContext, ByVal samAccountName As String)
        MyBase.New(context, samAccountName)
    End Sub

    <DirectoryProperty("wWWHomePage")>
    Public Property wWWHomePage As String
        Get
            If ExtensionGet("wWWHomePage").Length <> 1 Then Return Nothing
            Return CStr(ExtensionGet("wWWHomePage")(0))
        End Get
        Set(ByVal value As String)
            Me.ExtensionSet("wWWHomePage", value)
        End Set
    End Property

End Class


Obrigado.

---------------------------------------------------------------
"Já está provado por A+B que A+B num prova nada"
---------------------------------------------------------------

#485728 - 03/12/2018 11:43:13

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Existem várias bibliotecas completas para lidar com LDAP, porque não usá-las?

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#485729 - 03/12/2018 12:08:52

ALEVALE
JUNDIAI
Cadast. em:Março/2012


Então, hoje eu estou usando tudo através do "System.DirectoryServices",  funciona bem, só estou otimizando o código e verifiquei que através do "group.principal" terei uma grande redução no meu código, somente por isso.

---------------------------------------------------------------
"Já está provado por A+B que A+B num prova nada"
---------------------------------------------------------------

#485733 - 03/12/2018 13:43:08

ALEVALE
JUNDIAI
Cadast. em:Março/2012


Resolvido, precisei referenciar a classe, fiz algumas alterações:

Imports System.DirectoryServices.AccountManagement

Namespace Helper
    <DirectoryRdnPrefix("CN")>
    <DirectoryObjectClass("Group")>
    Public Class GroupPrincipalEx
        Inherits GroupPrincipal

        Public Sub New(ByVal context As PrincipalContext)
            MyBase.New(context)
        End Sub

        Public Sub New(ByVal context As PrincipalContext, ByVal samAccountName As String)
            MyBase.New(context, samAccountName)
        End Sub

        <DirectoryProperty("whenCreated")>
        Public Property whenCreated As String
            Get
                If ExtensionGet("whenCreated").Length <> 1 Then Return String.Empty
                Return CStr(ExtensionGet("whenCreated")(0))
            End Get
            Set(ByVal value As String)
                ExtensionSet("whenCreated", value)
            End Set
        End Property

        Public Overloads Shared Function FindByIdentity(ByVal context As PrincipalContext, ByVal identityValue As String) As GroupPrincipalEx
            Return CType(FindByIdentityWithType(context, GetType(GroupPrincipalEx), identityValue), GroupPrincipalEx)
        End Function

        Public Overloads Shared Function FindByIdentity(ByVal context As PrincipalContext, ByVal identityType As IdentityType, ByVal identityValue As String) As GroupPrincipalEx
            Return CType(FindByIdentityWithType(context, GetType(GroupPrincipalEx), identityType, identityValue), GroupPrincipalEx)
        End Function
    End Class
End Namespace


    Private Function AD_Group_Information()
        Try
            Using ctx As New PrincipalContext(ContextType.Domain)
                Dim oGroup As GroupPrincipalEx = GroupPrincipalEx.FindByIdentity(ctx, IdentityType.Name, "Domain Admins")
                Console.WriteLine(oGroup.whenCreated)
            End Using

        Catch ex As Exception

        End Try
    End Function


---------------------------------------------------------------
"Já está provado por A+B que A+B num prova nada"
---------------------------------------------------------------

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por ALEVALE em 03/12/2018 13:43:27