AJUDA CONVERSO C# PARA VB.NET

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

AJUDA CONVERSO 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,

Algum poderia verificar se o cdigo que eu converti est correto, sinceramente no uso C# ento no sei se foi convertido corretamente, na realidade estou na dvida 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 vrias bibliotecas completas para lidar com LDAP, porque no us-las?

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


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

ALEVALE
JUNDIAI
Cadast. em:Março/2012


Ento, hoje eu estou usando tudo atravs do []System.DirectoryServices[],  funciona bem, s estou otimizando o cdigo e verifiquei que atravs do []group.principal[] terei uma grande reduo no meu cdigo, 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 alteraes:

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