I've been using the Mendeley Desktop application for a couple of years now.
It meets all of your requirements. Once you've imported bibliographic data via the Windows desktop app, you can also see it via the web interface.
Attach the actual documents
Each reference can have zero, one or more documents attached to it. These are full-text indexed, and searchable. You can filter by author, publication, tag, or author keyword. You can search on any combination of author name, title, publication name, year, your notes, and article text. There's are automated lookups to pull data in from web databases,via Arxiv ID, DOI or PMID. It scans PDFs for metadata and incorporates that into the database. It's reasonably good, given the huge range of formats that people use to specify a paper's metadata.
Organize the citations
It imports the authors' keywords. It also allows you to specify your own tags, in a different field, so these are kept separate from authors' keywords. You can also assign papers to groups, in a many-to-many mapping. It has a flag for read/unread. You can use groups to set reading priority: create groups called "must read", "read in 2014", whatever, and add files to groups as appropriate.
You can import & export biblio data with other applications (RefMan, EndNote, etc):
- Bibtex .bib file
- EndNote .xml file
- Research Information Systems .ris file
You can also import from:
And you can export to MS Word in any one of dozens of citation formats. There's a Word macro file which manages this, and which allows you to change the citation format once imported.
- In the early beta days, it did corrupt some metadata, but that seems to have settled down now.
- Mendeley HQ isn't very good at support or feature requests.
- It is a gratis (zero-price) product, and you know what they say about those: if it's free, you're not the customer, you're the product.
- Note that just as with any other reference management software, using the Word macro may cause issues when you edit a Word document co-operatively with other people when they don't have the same reference database as you.
Related questions on the Academia StackExchange