An OS-Intergrated place to store per-user application configuration files.

A Chairde,
I'm developing an application that could be deployed on multiple platforms. I'm looking for a location to store per-user configuration files in a OS-integrated way.
I use a utility class to determine the OS of the users machine. I know from experience that Windows NT5+ likes to store per-user settings/configurations in the %APPDATA% path (which is usually C:\Users\<username>\Appdata\Roaming\<vendor>\<software> etc.) I'm using a call to the environment labels to determine it's location.
I'm a linux user myself, so I'm aware that most UNIX based Operating Systems like to store personal configurations in hidden folders in the user's home directory (ex /home/<username>/.<application> etc.), Obviously, I'm using a call to the system property user.home to determine that location.
My Question is in relation to Mac OS and Mac OS X, where would it be a safe location to store per-user configurations? I know OS X is BSD/UNIX based so is it safe to assume to store them as a hidden subfolder of the user.home directory? What about Mac OS classic? Where are per-user settings stored, or is it like Windows 9x and NT4 and lacks proper multi-user setups (although NT4 is somewhat more prepared then 9x) ?
It would be much appreciated if anybody has any ideas.
Is Mise,
Seán Mac Aodha
PS. I'm not using Javas Property files etc. I've rolled my own exchangeable format for storing key,value pairs.

I've used databases in the past to store local files but clients have sometimes run into trouble when the database daemon goes down or doesnt start-up normally because of a "improper" shutdown etc.
In my own implementation of "Settings Files" i have serialized hashtables marked with appropriate metadata stored to the users "application data", a backup or original copy of those settings in the common directory shared by my application framework and then in a networked enviroment, the Settings can be hosted on a database server, so the user can travel between client machines and keep their settings (and files) with them.
I have, with a bit of googling, come across the most obvious page i should have looked at in regards to Apple Mac OS X
http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/Articles/WhereToPutFiles.html
According to Apple's guidlines, the most suitable place to store User configuration files is in the ~/Library/Application Support/<Application Name> directory.
and for System-wide configuration files, /Library/Application Support/<Application Name> rather then storing them with the application in the /Applications directory.

Similar Messages

  • Creating native MSI bundle that is "per user"-based (not "system"-based)

    I am trying to collect all information in order to create a native MSI bundle that is "per user" based - but failed.
    This means:
    (.) The MSI should install into the user's local directory
    (.) There should be no admin permission required
    When using the default <fx:deploy ... nativebundle="msi" ...>-ANT-element, then the MSI is created "system wide" based, installing in "/Prorgram Files" and requiring an admin permission.
    In the Oracle docu (http://docs.oracle.com/javafx/2/deployment/self-contained-packaging.htm) there is no concrete hint how to create "per user" based MSI files. Maybe, someone already has done this and could tell the imprortant steps...
    THANKS!
    PS: I know - using the .exe-bundling with Inno Setup will create "per user" based installers by default, but I do not want to use .exe if possible

    Try
    <fx:preferences install="false"/>
    although the parameter name doesn't give much indication that it's system vs per user :)
    I checked that the MSI bundler code and it should honor this.
    Let me know if this works (I don't have time to try myself today and am leaving on Holidays for a week so won't be able to check until I'm back).
    Mark

  • Store info. per User - How?

    Is there a way i cud store some information per user??
    I know we could use portalapp.xml to store data but Iam looking for alternative approach which gives more flexibility to store more data and is more user speific.
    Any Sample code or pointers are appreciated!!
    Thanks a lot.

    Hi,
    You can use EPCF to store information.
    Using Level one or level two you can store client information in the form of cookies.
    Refer to this link
    http://help.sap.com/saphelp_erp2005/helpdata/en/27/41b84033a8b533e10000000a155106/frameset.htm
    Look for client Data Bag API, sample code is available in the link.
    Message was edited by: Kirupanand venkatapathi

  • CUPS 8.6 - Supporting Multiple SIP Domains on a per-user basis

    Working on a CUPS 8.6 PoC with a customer who currently is running a deployed OCS environment. 
    Users all sign into a single domain internally but have multiple SMTP domains for email as this customer has many different companies they have aquired.
    OCS  is able to support and route multiple SIP domains by specifing the SIP address under AD User settings such that two users both signed into the same OCS server can send IM's to each other even though they have different SIP addresses.  sip:[email protected] , sip:[email protected]
    CUPS on the other hand does not seem to allow this on a per-user basis.  It places every user in the sip domain that the server is a member of.
    The Jabber client allows you to specify a domain but I am not how this is used as the actual user account in CUPS is only ever the one domain and if you try and specify a different domain in the Jabber Connection Settings, it will not allow you to login.
    It is not a big deal for internal communications if everyone is on the same domain, but where it is important is for future B2B IM.  Users need to be able to give out THEIR IM address with THEIR respective domain.
    Does anyone else know for a fact that I will only be able to have one domain per CUP cluster?
    Any thoughts on this design?

    Not sure on the design perspective but as for CUPS Domain, we can only have single domain per cluster. As you have already found out that for any user licensed for CUPS, their IM address would be userid@CUPSDomain
    CUPS does have funtionality of federating with foreign domains such as AOL/GoogleTalk/WebEx Connect.

  • Windows Installer repair issue for per-user folders/files

    Intro:
    I have doubts that this is the right place to ask about this, since this issue has existed for me on many windows platforms, please suggest where this should be forwarded if this is an inappropriate place to ask.
    Please do not be confused by the directory paths for XP, this issue is also true for Windows 7.
    Description:
    Windows Installer does not repair files in per-user directories, such as [AppDataFolder], when initial installation is performed using system account (for example - distributing the package through SCCM or using psexec) and repairing under a user with administrative
    privileges (limited user repair works fine).
    Example.
    .msi installation installs a custom .xml configuration file to "[AppDataFolder]". We're installing .msi by using psexec /s. log output:
    MSI (s) (D8:F0) [15:19:01:214]: Executing op: FileCopy(SourceName=SETTIN~2.CON|customXML,SourceCabKey=customXML,DestName=customXML,Attributes=16384,FileSize=2633,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=58982400,HashOptions=0,HashPart1=-1992414570,HashPart2=1238809189,HashPart3=-80616146,HashPart4=146746036,,)
    MSI (s) (D8:F0) [15:19:01:214]: File: c:\WINDOWS\system32\config\systemprofile\Application Data\customXML;
    To be installed; Won't patch;
    No existing file
    MSI (s) (D8:F0) [15:19:01:214]: Source for file 'customXML' is compressed
    MSI (s) (D8:F0) [15:19:01:230]: Note: 1: 2318 2: c:\WINDOWS\system32\config\systemprofile\Application Data\customXML
    When a user with administrative credentials accesses the advertised shortcut repair is run on the component that has the .xml configuration file, event viewer has an entry about this.
    The verbose repair log file shows the following entry:
    MSI (s) (D8:E4) [15:22:27:667]: Executing op: FileCopy(SourceName=SETTIN~2.CON|customXML,SourceCabKey=customXML,DestName=customXML,Attributes=16384,FileSize=2633,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=16908288,HashOptions=0,HashPart1=-1992414570,HashPart2=1238809189,HashPart3=-80616146,HashPart4=146746036,,)
    MSI (s) (D8:E4) [15:22:27:667]: File: c:\WINDOWS\system32\config\systemprofile\Application Data\customXML;
    Won't Overwrite; Won't patch;
    Existing file is unversioned and unmodified - hash matches source file
    Limited user repair log reads:
    MSI (s) (78:8C) [15:26:27:406]: Executing op: FileCopy(SourceName=SETTIN~2.CON|customXML,SourceCabKey=customXML,DestName=customXML,Attributes=16384,FileSize=2633,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=16908288,HashOptions=0,HashPart1=-1992414570,HashPart2=1238809189,HashPart3=-80616146,HashPart4=146746036,,)
    MSI (s) (78:8C) [15:26:27:406]: File: c:\Documents and Settings\test\Application Data\customXML;
    To be installed; Won't patch;
    No existing file
    Your suggestions will be very much appreciated.

    Hello,
    Did you ever get to the root cause of this?
    I have a similar problem with a custom XML that is reported as "empty or is not a xml file." in the logs.
    Wondered if you had found the root cause?
    Kind regards,
    Sio.

  • ISE 1.2 & AD & Meraki - Per User Group Policy ?

    I am working on a PoC for a deployment in an MDU. We are using Meraki switches and access points. There are 250 units in the building, each unit will have it's own subnet. The goal is to have the tenant be able to connect to a common building SSID and be placed into their assigned VLAN. There will also be physical ports in each unit that will need to do the same. I am trying to figure out a way to use ISE to authorize on a per user basis and not based on groups of users. On the Meraki system there are group policies that will assign the VLAN for the user as well as any type of layer 7 firewalling and bandwidth control. So there will be 250 group policies, one for each unit. There is a deployment guide that shows how to setup ISE for use with Meraki and it is great but it assumes that there will be large groups like Employees, Contractors, etc.. that will be used. This is where I'm being tripped up, also... this is my first swing at a NAC deployment so I have a lot to learn.
    1.Can I setup each user in Active Directory to have a tag that ISE can then forward on to Meraki for the group policy? Say it's unit 101 and I have a group policy called 101 in Meraki, Meraki documentation says to use the Airespace-ACL-Name attribute in ISE to indicate the group policy to use. This gives me the ability to place a group into that policy but not an individual. Or would this be better done by creating the users in ISE directly? Omit AD entirely?
    2. Each unit will have devices that will need MAB because they are not 802.1x compatible. I need to do the same as above with them. I would create a separate SSID for these devices but then use the MAC address to authenticate them but will need to authorize them to go into a specific group policy.
    I know this isn't a typical ISE application but I think that this will work really well in the end, just need to iron out these details and get a test system functioning. Any help would be greatly appreciated!!!
    Thanks,
    Nathan

    Please find the Meraki_ISE integration doc. in attachment.
    When VLAN tagging is configured per user, multiple users can be associated to the same SSID, but their traffic is tagged with different VLAN IDs. This configuration is achieved by authenticating wireless devices or users against a customer-premise RADIUS server, which can return RADIUS attributes that convey the VLAN ID that should be assigned to a particular user’s traffic.
    In order to perform per-user VLAN tagging, a RADIUS server must be used with one of the following settings:
    MAC-based access control (no encryption)
    WPA2-Enterprise with 802.1x authentication
    A per-user VLAN tag can be applied in 3 different ways:
    The RADIUS server returns a Tunnel-Private-Group-ID attribute in the Access-Accept message, which specifies the VLAN ID that should be applied to the wireless user. This VLAN ID could override whatever may be configured in the MCC (which could be no VLAN tagging, or a per-SSID VLAN tag). To have this VLAN ID take effect, “RADIUS override” must be set to “RADIUS response can override VLAN tag” under the Configure tab on the Access Control page in the “VLAN setup” section.
    The RADIUS server returns a group policy attribute (e.g., Filter-ID) in the Access-Accept message. The group policy attribute specifies a group policy that should be applied to the wireless user, overriding the policy configured on the SSID itself. If the group policy includes a VLAN ID, the group policy’s VLAN ID will be applied to the user.
    On the Client Details page, a client can be manually assigned a group policy. If the group policy includes a VLAN ID, the group policy’s VLAN ID will be applied to the user. 

  • Payment Distribution to Artists by per user plays, rather than total plays

    Hello!
    I just had a thought about how payment is distributed to artists that I wanted to see if anyone might have some thoughts on. Spotify still does come under criticism on occasion for artist payment distribution - I've seen a couple of instances of people citing iTunes as providing more monetary compensation to artists since it is per download, rather than per play, among other things. This seems to be especially true for independent artists, and artists who are generally less well-known.
    I was wondering if Spotify has ever considered doing payment distributions using the
         sum[ (total artist streams per user) / (total streams per user) ] across all users
    ratio for payment calculation, rather than the currently used
         (total artist streams across Spotify) / (total streams across Spotify)
    approach, i.e. calculating the artists' play ratio by user, rather than in one giant pool. If you have considered this, I would love to hear why the current payment implementation was chosen rather than a per user method, such as the one listed above. But... 
    If a per user method has not been considered by Spotify previously, I think it would be nice - while I'm not an analyst myself, I imagine that it could lead to more revenue for independent artists, and maybe even less famous artists that are still beholden to rights owners for distribution of payment. I think it would do this because it could account for differences in number of plays per user - rather than users who tend to play more music over the course of a month contributing more all artists' payout, each user has an equal voice in how money gets distributed to artists.
    I understand that such a switch would be difficult, and possibly insurmountable in the instance of free users - so, I am positing this as an idea not for all users, but for Premium users only. With Premium, it is a feasible goal, since you have a finite number of plays, and a finite amount of money coming directly from that user, and do not have to worry about trying to calculate differences in advertisement impact for different users. Doing that ratio calculation would be relatively straightforward of a switch computationally (though quite a large change in the system nonetheless, of course). 
    I think this type of change would empower both users and artists to use Spotify more. Firstly, it would empower artists to allow Spotify to play their music because the metrics they would get per month would be more reflective of the size of their fan base, and how much importance that fan base puts on the artists' music than current metrics.
    Secondly, it would empower users more, which I think is especially important for users between 18-32 years of age. While I am not an expert on the subject, I often find that users in this age group (my age group) care a great deal about having control over where their money ends up, which in this case means knowing which rights holders and/or artists are getting the money they are spending. I know I do. Switching to this system, while still not addressing the injustices that are felt within the relationship between rights holders and artists by many, would still allow users to have more of a say in who gets their money than the current system. On top of that, it might be helpfult for Spotify itself - if using Premium is the only way for users to feel empowered by knowing how their money is distributed, it may encourage people in the free tier to upgrade to Premium in order to feel empowered.
    Just a thought. I'd love to hear what you and others have to say about this idea. 

    @Merik thanks for the warm welcome, and for the quick, informative response!
    I had the chance to take a look at that page you linked to before my original post, and saw that paragraph you quoted, as well as the bullet point about paid users having a higher "per stream" rate. I guess what I was more interested in (and perhaps this is not the right place to ask this question?) was if there was more of an in-depth "why" behind their decision (and thanks again for linking to it!) documented anywhere that I might be able to read more about. Maybe I was missing something on that page (and please let me know if so!), but the only "why" that I could find was a sentence in the paragraph you quote above:
    "We believe, however, that our service and the lives of artists will both be best if the World’s music fans enjoy more music than ever before in a legal, paid manner".
    While it's great to see their opinion, I was more curious about the line of reasoning behind that position is all. Because I do wonder whether empowering premium users to have more fine-grained control over how their money is allocated, such as by doing pay "per user", might lead to both more paid users and more revenue for independent and/or lesser-known artists - and if that's something that Spotify has researched already, I would love to hear more about the pros and cons behind such an approach!
    Thanks!

  • Exchange Recon with multiple Servers & Message Stores per Server

    I am trying to think through the best way to write a single reconciliation task for an environment that has 3 Exchange Servers with 3 storage groups per server and 3 mailbox stores per storage group. That's 27 mailbox stores and I don't want to have 27 schedules tasks for reconciliation.
    Any thoughts?
    KC

    All the servers are in a single domain.
    The issues is the default scheduled task requires an exchange server and ad server parameter. The mailboxes not on the server specified show as "Users Matched" instead of "Event Linked" the reconciliation process.
    Our Reconciliation Rule is "User Login equals sAMAcountName", but the mailboxes still don't match correctly. I originally thought this rule would work regardless of the exchange server(s) involved, but it does not seem to be the case.
    KC

  • Limit dialog processes per user

    Hello,
    We would like to know if it possible to limit dialog processes per user.
    We have a user that he runs every dialog processes without permissions and we would like to limit the number of such processes to, for example, 5. This processes are an RFC for external java program.
    Thanks and regards,
    Néstor.

    <removed by moderator>
    Do not copy and paste. Always quote the source
    Read the "Rules of Engagement"
    Edited by: Juan Reyes on Jan 12, 2010 9:39 AM

  • Providing a unique RemoteObject per user

    I'm trying to setup a simple multi-user client server in BlazeDS and provide each Flex client its own unique RemoteObject.
    I set up the Java object in remoting-config.xml. But the object is only being created once and every user afterwords has access to the same object. I have to restart Catalina if I want a new user. What is the right/simplest way of providing each user access to thier own object?

    I don't think you can create remote objects on a per user basis. However you could create user-specific objects from within your remote object methods and store them between requests on the FlexSession (which is roughly equivalent to an HttpSession object in J2EE).

  • Best place to store game currency

    Hi, where would be the recommended place to store game currency i.e coins?
    ApplicationData::Current->RoamingSettings
    Looks good since this will sync between devices.  However, I get intermittent failures with
    'The RPC server is unavailable.'
    This would be bad if the user had just bought currency.  Also, I like this to work correctly if the user should drop offline for whatever reason,
    I'm guessing this will fail if the user loses connection.  So should I write to both local and roaming settings?
    Finally, if the user does not have a microsoft account, will this work, and if they install the game before they bind it to a microsoft account, will it still work?

    Roaming should be fine. That saves locally then since in the background. The user doesn't need a connection, though it won't roam until there is one.
    The user needs an account to install the app, so that won't be a problem

  • What is the best place to store salts

    Hi,
    I'm using a combination of flex ,CF and MS SQL
    Where is the best place to store salts for user passwords?

    Hi,
    Table is good if "constant" might change so you can create APEX form to maintain those.
    You could also use package specification just for constants e.g.
    CREATE OR REPLACE
    PACKAGE MY_GLOBALS
    AS
      g_const_1 CONSTANT DATE := TRUNC(SYSDATE) + 365;
      g_const _2 CONSTANT VARCHAR2(30) := 'somestring';
    END;
    Then you can refer those in procedures, functions and APEX processes like (package_name.constant_name) MY_GLOBALS.g_const_1.
    Regards,
    Jari

  • Auto logout time different per users

    Hello
    we are using almost all modules in ECC. So we have 2 kinds of SAP users, the administrative ones and the operational ones.
    The administrative ones is using SAP all the day by creating purchase orders, process orders or recording control results by example. When they make an activities in SAP they can completed the task without any interruption.
    But we have as well operational users who are using SAP to make physical activities like to place pallet in the warehouse with WM functions and to weight a drum from the PI-sheet in PPPI.
    The auto logout is after 15 minutes of inactivity and I don't find how to set it up per users. In deed, the operator in production needs time between each weighing meaning stick label, remove the previous drum, take the new one, write information on the paper batch record, ... The time between 2 actions in SAP is more than 15 minutes. So the operator is automatically logout between each weighing and it takes around 2 minutes to log again and reload the Pi-sheet. By example, to weight 46 drums the operator will lost more than 1,5 hour. It's not acceptable by the production.It increases the production time of 16%.
    How can I set up a auto logout time to 15 minutes or less for the administrative users and 1 hour for the production users located in a protected area ( no access by external people) ?
    thanks in advance for your answer
    regards
    V Noirot
    PPPI team lead

    Hi,
    You can increase the logout time for the endusers. But the power users, throughout the day they will be using the system. This time increase will not affect much on the power users. If you are saving some productive hours by increasing this time out means, you can do this. But it will act similar for both the users.
    regards,
    V. Suresh

  • Where Is a Proper Place to Store Temporary Files?

    Now, I have this situation: While the web application is running, I need a place to store an uploaded file temporarily and then write this file out.
    Where is the proper place to create a directory to store a temporary file?
    Is any place in the application OKay?

    System.getProperty ("user.temp");Kind regards,
      Levi

  • Best place to store application database

    Where is the best (most secure) place to store database files that are application specific?
    I'm writing a kiosk application that runs on Windows 7 x64 as a desktop application.  A non-privileged user will be logged in to Windows and the application runs as this non-privileged user.  It relies on 2 MySql database files, one with read-only
    access and the other with read-write access.  Where is the best place to store these 2 database files such that only the user that the application is running as (the currently logged in user) has access to them?  My concern is keeping them secure
    if someone manages to log into the machine as a different user.  Am I best to put them under %USERPROFILE%\AppData\Local\<MyCompany>\<MyApp> ?

    Yes.  You should programmatically obtain the directory by calling SHGetKnownFolderPath() +
    FOLDERID_LocalAppData
    https://msdn.microsoft.com/en-us/library/windows/desktop/bb762188(v=vs.85).aspx
    By Default the only users with access to a user's %AppData% directory are LocalSystem, Administrators and the user itself.  A different user could not access the directory unless the user was an Administrator who was elevated.
    thanks
    Frank K [MSFT]

Maybe you are looking for