store (get and set) data in Active directory , for example connection string












0















is there a way to store global data (like connect string etc. ) in active directory and get it in c# function ?
somthing like



AD ad = new ...
ad.Save ("MyConnString",connectionString);
ad.get...









share|improve this question























  • You could make that happen, but then anyone who can query ldap would be able to see it. That is the wrong tool for the job. If this application is in azure you could store the connection string in Azure Key Vault.

    – Crowcoder
    Jan 1 at 13:57











  • my data aren't sensitive data, i need to publish them in a easy tool, how can i do it.

    – mordechai
    Jan 1 at 14:02











  • Connection strings aren't sensitive? I'm not sure what you mean by "publish", but data is typically stored in a database or a file or even application settings.

    – Crowcoder
    Jan 1 at 14:04






  • 1





    Active Directory isn't suitable for that kind of data - which is very much application-specific, possibly even depending on installation options. Store that in application config files where it belongs

    – marc_s
    Jan 1 at 14:06











  • can you explain the use case of why you want to store the connection string in the Active Directory?

    – Chetan Ranpariya
    Jan 1 at 14:08
















0















is there a way to store global data (like connect string etc. ) in active directory and get it in c# function ?
somthing like



AD ad = new ...
ad.Save ("MyConnString",connectionString);
ad.get...









share|improve this question























  • You could make that happen, but then anyone who can query ldap would be able to see it. That is the wrong tool for the job. If this application is in azure you could store the connection string in Azure Key Vault.

    – Crowcoder
    Jan 1 at 13:57











  • my data aren't sensitive data, i need to publish them in a easy tool, how can i do it.

    – mordechai
    Jan 1 at 14:02











  • Connection strings aren't sensitive? I'm not sure what you mean by "publish", but data is typically stored in a database or a file or even application settings.

    – Crowcoder
    Jan 1 at 14:04






  • 1





    Active Directory isn't suitable for that kind of data - which is very much application-specific, possibly even depending on installation options. Store that in application config files where it belongs

    – marc_s
    Jan 1 at 14:06











  • can you explain the use case of why you want to store the connection string in the Active Directory?

    – Chetan Ranpariya
    Jan 1 at 14:08














0












0








0








is there a way to store global data (like connect string etc. ) in active directory and get it in c# function ?
somthing like



AD ad = new ...
ad.Save ("MyConnString",connectionString);
ad.get...









share|improve this question














is there a way to store global data (like connect string etc. ) in active directory and get it in c# function ?
somthing like



AD ad = new ...
ad.Save ("MyConnString",connectionString);
ad.get...






c# active-directory






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 1 at 13:52









mordechaimordechai

5521318




5521318













  • You could make that happen, but then anyone who can query ldap would be able to see it. That is the wrong tool for the job. If this application is in azure you could store the connection string in Azure Key Vault.

    – Crowcoder
    Jan 1 at 13:57











  • my data aren't sensitive data, i need to publish them in a easy tool, how can i do it.

    – mordechai
    Jan 1 at 14:02











  • Connection strings aren't sensitive? I'm not sure what you mean by "publish", but data is typically stored in a database or a file or even application settings.

    – Crowcoder
    Jan 1 at 14:04






  • 1





    Active Directory isn't suitable for that kind of data - which is very much application-specific, possibly even depending on installation options. Store that in application config files where it belongs

    – marc_s
    Jan 1 at 14:06











  • can you explain the use case of why you want to store the connection string in the Active Directory?

    – Chetan Ranpariya
    Jan 1 at 14:08



















  • You could make that happen, but then anyone who can query ldap would be able to see it. That is the wrong tool for the job. If this application is in azure you could store the connection string in Azure Key Vault.

    – Crowcoder
    Jan 1 at 13:57











  • my data aren't sensitive data, i need to publish them in a easy tool, how can i do it.

    – mordechai
    Jan 1 at 14:02











  • Connection strings aren't sensitive? I'm not sure what you mean by "publish", but data is typically stored in a database or a file or even application settings.

    – Crowcoder
    Jan 1 at 14:04






  • 1





    Active Directory isn't suitable for that kind of data - which is very much application-specific, possibly even depending on installation options. Store that in application config files where it belongs

    – marc_s
    Jan 1 at 14:06











  • can you explain the use case of why you want to store the connection string in the Active Directory?

    – Chetan Ranpariya
    Jan 1 at 14:08

















You could make that happen, but then anyone who can query ldap would be able to see it. That is the wrong tool for the job. If this application is in azure you could store the connection string in Azure Key Vault.

– Crowcoder
Jan 1 at 13:57





You could make that happen, but then anyone who can query ldap would be able to see it. That is the wrong tool for the job. If this application is in azure you could store the connection string in Azure Key Vault.

– Crowcoder
Jan 1 at 13:57













my data aren't sensitive data, i need to publish them in a easy tool, how can i do it.

– mordechai
Jan 1 at 14:02





my data aren't sensitive data, i need to publish them in a easy tool, how can i do it.

– mordechai
Jan 1 at 14:02













Connection strings aren't sensitive? I'm not sure what you mean by "publish", but data is typically stored in a database or a file or even application settings.

– Crowcoder
Jan 1 at 14:04





Connection strings aren't sensitive? I'm not sure what you mean by "publish", but data is typically stored in a database or a file or even application settings.

– Crowcoder
Jan 1 at 14:04




1




1





Active Directory isn't suitable for that kind of data - which is very much application-specific, possibly even depending on installation options. Store that in application config files where it belongs

– marc_s
Jan 1 at 14:06





Active Directory isn't suitable for that kind of data - which is very much application-specific, possibly even depending on installation options. Store that in application config files where it belongs

– marc_s
Jan 1 at 14:06













can you explain the use case of why you want to store the connection string in the Active Directory?

– Chetan Ranpariya
Jan 1 at 14:08





can you explain the use case of why you want to store the connection string in the Active Directory?

– Chetan Ranpariya
Jan 1 at 14:08












1 Answer
1






active

oldest

votes


















2














This is how you would update a text attribute on an AD object:



var adObj = new DirectoryEntry($"LDAP://{distinguishedName}");
adObj.Properties[attribute].Value = "my connection string";
adObj.CommitChanges();


Actually doing it is the easy part. Planning it will be the harder part.



Active Directory consists of objects with attributes. So yes, you can store text in any text attribute, but you would have to decide:




  1. Which object you will store the data on (distinguishedName in the code), and

  2. Which attribute you will use (attribute in the code)


If the connection string is common for everyone on the domain, you could store it at the root of the domain, but that comes with two problems:




  1. Permissions to write to the root of the domain are usually only given to domain admins

  2. There are fewer unused attributes that you could choose from.


If you write the connection string to each user object, then it will be easier to find an unused attribute (if you use Exchange, then there are several that start with extensionAttribute that are often unused), but you are also duplicating that data on every account and you'll have to hope no one changes it.



Like the commenters above, I would suggest you store this somewhere else. If it is a unique connection string per-domain, then you could just store a mapping table (this domain = this connection string). Once the user logs in, you can see which AD domain they're on and grab the correct connection string.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53996003%2fstore-get-and-set-data-in-active-directory-for-example-connection-string%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    2














    This is how you would update a text attribute on an AD object:



    var adObj = new DirectoryEntry($"LDAP://{distinguishedName}");
    adObj.Properties[attribute].Value = "my connection string";
    adObj.CommitChanges();


    Actually doing it is the easy part. Planning it will be the harder part.



    Active Directory consists of objects with attributes. So yes, you can store text in any text attribute, but you would have to decide:




    1. Which object you will store the data on (distinguishedName in the code), and

    2. Which attribute you will use (attribute in the code)


    If the connection string is common for everyone on the domain, you could store it at the root of the domain, but that comes with two problems:




    1. Permissions to write to the root of the domain are usually only given to domain admins

    2. There are fewer unused attributes that you could choose from.


    If you write the connection string to each user object, then it will be easier to find an unused attribute (if you use Exchange, then there are several that start with extensionAttribute that are often unused), but you are also duplicating that data on every account and you'll have to hope no one changes it.



    Like the commenters above, I would suggest you store this somewhere else. If it is a unique connection string per-domain, then you could just store a mapping table (this domain = this connection string). Once the user logs in, you can see which AD domain they're on and grab the correct connection string.






    share|improve this answer




























      2














      This is how you would update a text attribute on an AD object:



      var adObj = new DirectoryEntry($"LDAP://{distinguishedName}");
      adObj.Properties[attribute].Value = "my connection string";
      adObj.CommitChanges();


      Actually doing it is the easy part. Planning it will be the harder part.



      Active Directory consists of objects with attributes. So yes, you can store text in any text attribute, but you would have to decide:




      1. Which object you will store the data on (distinguishedName in the code), and

      2. Which attribute you will use (attribute in the code)


      If the connection string is common for everyone on the domain, you could store it at the root of the domain, but that comes with two problems:




      1. Permissions to write to the root of the domain are usually only given to domain admins

      2. There are fewer unused attributes that you could choose from.


      If you write the connection string to each user object, then it will be easier to find an unused attribute (if you use Exchange, then there are several that start with extensionAttribute that are often unused), but you are also duplicating that data on every account and you'll have to hope no one changes it.



      Like the commenters above, I would suggest you store this somewhere else. If it is a unique connection string per-domain, then you could just store a mapping table (this domain = this connection string). Once the user logs in, you can see which AD domain they're on and grab the correct connection string.






      share|improve this answer


























        2












        2








        2







        This is how you would update a text attribute on an AD object:



        var adObj = new DirectoryEntry($"LDAP://{distinguishedName}");
        adObj.Properties[attribute].Value = "my connection string";
        adObj.CommitChanges();


        Actually doing it is the easy part. Planning it will be the harder part.



        Active Directory consists of objects with attributes. So yes, you can store text in any text attribute, but you would have to decide:




        1. Which object you will store the data on (distinguishedName in the code), and

        2. Which attribute you will use (attribute in the code)


        If the connection string is common for everyone on the domain, you could store it at the root of the domain, but that comes with two problems:




        1. Permissions to write to the root of the domain are usually only given to domain admins

        2. There are fewer unused attributes that you could choose from.


        If you write the connection string to each user object, then it will be easier to find an unused attribute (if you use Exchange, then there are several that start with extensionAttribute that are often unused), but you are also duplicating that data on every account and you'll have to hope no one changes it.



        Like the commenters above, I would suggest you store this somewhere else. If it is a unique connection string per-domain, then you could just store a mapping table (this domain = this connection string). Once the user logs in, you can see which AD domain they're on and grab the correct connection string.






        share|improve this answer













        This is how you would update a text attribute on an AD object:



        var adObj = new DirectoryEntry($"LDAP://{distinguishedName}");
        adObj.Properties[attribute].Value = "my connection string";
        adObj.CommitChanges();


        Actually doing it is the easy part. Planning it will be the harder part.



        Active Directory consists of objects with attributes. So yes, you can store text in any text attribute, but you would have to decide:




        1. Which object you will store the data on (distinguishedName in the code), and

        2. Which attribute you will use (attribute in the code)


        If the connection string is common for everyone on the domain, you could store it at the root of the domain, but that comes with two problems:




        1. Permissions to write to the root of the domain are usually only given to domain admins

        2. There are fewer unused attributes that you could choose from.


        If you write the connection string to each user object, then it will be easier to find an unused attribute (if you use Exchange, then there are several that start with extensionAttribute that are often unused), but you are also duplicating that data on every account and you'll have to hope no one changes it.



        Like the commenters above, I would suggest you store this somewhere else. If it is a unique connection string per-domain, then you could just store a mapping table (this domain = this connection string). Once the user logs in, you can see which AD domain they're on and grab the correct connection string.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 1 at 20:14









        Gabriel LuciGabriel Luci

        11.1k11525




        11.1k11525
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53996003%2fstore-get-and-set-data-in-active-directory-for-example-connection-string%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Monofisismo

            Angular Downloading a file using contenturl with Basic Authentication

            Olmecas