<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ASP.NET WebForms</title><link>https://www.dotnetzone.gr:443/cs/forums/13/ShowForum.aspx</link><description>Θέματα για web εφαρμογές, σε ASP.NET WebForms</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Διάθεση αρχείων σε χρήστες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53817.aspx</link><pubDate>Fri, 18 Sep 2009 21:24:12 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53817</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53817.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=53817</wfw:commentRss><description>Ειναι πολύ δυνατό, πως να μην είναι, o Miguel Castro είναι τρομερός. Δες επίσης και του Stahl, το βγάζει δεξία σαν συντόμευση.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: Διάθεση αρχείων σε χρήστες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53813.aspx</link><pubDate>Fri, 18 Sep 2009 18:37:21 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53813</guid><dc:creator>Ευθύμης Δημόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53813.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=53813</wfw:commentRss><description>Δημήτρη φαίνεται να βοηθάει αρκετά αυτό το άρθρο, το μελετάω από χτες και θα επανέλθω σύντομα (όταν θα έχω σχηματίσει άποψη...) &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br&gt;</description></item><item><title>Απ: Διάθεση αρχείων σε χρήστες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53788.aspx</link><pubDate>Thu, 17 Sep 2009 22:48:31 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53788</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53788.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=53788</wfw:commentRss><description>&lt;P&gt;Αν θέλεις να στηρίξεις του δουλειά σου σε αυτό και δεν ψάχνεις μια γρήγορη λύση διάβασε το άρθρο που δίνω παραπάνω. Ο Miguel Castro εξηγεί διάφορες εναλλακτικές. Λύση του tasos είναι καλή, αλλά με τον HttpHandler κερδίζεις ως προς το ότι είναι περισσότερο transparent. Τα αρχεία σου επίσης βρίσκονται σε φάκελο εκτός των web folders (όπως&amp;nbsp;και στη λύση του tasos και όπως&amp;nbsp;προτείνει και ο Σωτήρης), ενώ το request είναι πολύ φυσικό: &lt;A href="http://www.myserver.com/myapp/files/myfile.zip"&gt;http://www.myserver.com/myapp/files/myfile.zip&lt;/A&gt;. Απλά έχεις τη δυνατότητα με τον κώδικα που θα γράψεις στον HttpHandler να ελέγξεις ότι θέλεις (αν ο χρήστης είναι registered, πόσε φορές κατέβασε το αρχείο κλπ.). Ο κώδικας που θα γράψεις τέλος είναι αρκετά λίγος και απλός.&lt;/P&gt;</description></item><item><title>Απ: Διάθεση αρχείων σε χρήστες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53785.aspx</link><pubDate>Thu, 17 Sep 2009 22:36:33 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53785</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53785.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=53785</wfw:commentRss><description>Η πιό ασφαλής λύση σε αυτές τις καταστάσεις, κατά τη δική μου άποψη, είναι το repository των αρχείων να βρίσκεται κάπου εκτός web folders. Από εκεί, μια εφαρμογή θα μπορούσε να παίρνει τα αρχεία και να τα κάνει stream στο χρήστη, εφόσον αυτός έχει πληρώσει για να τα κατεβάσει. Ετσι μάλιστα θα μπορούσες και να ξαναδίνεις αρχεία (με περιορισμό στον αριθμό των downloads, αν το επιθυμείς) ακόμα και αν ο χρήστης τα έχει ήδη κατεβάσει, μια και θα έχεις εσύ τον απόλυτο έλεγχο του τι "χτυπάει" ο χρήστης.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Απαξ και ο χρήστης λάβει το αρχείο, δεν έχεις έλεγχο στο τι μπορεί να κάνει και αν θα το στείλει ή οχι στα torrents ή αλλού. Στα pdf, που είναι readonly, ορισμένοι (οπως π.χ. η Wrox με τα Wrox Blox - μικρά ebooks σε τιμές κάτω των 10$ που κατεβάζεις από το site τους) βάζουν τα στοιχεία σου στο footer κάθε σελίδας έτσι ωστε, ακόμα και αν το μοιράσεις σε p2p, όλοι να γνωριζουν από ποιόν προήλθε το original. Αυτό προϋποθέτει βέβαια και την ύπαρξη εξειδικευμένης εφαρμογής που θα "κατασκευάζει" το pdf on the fly για κάθε πελάτη (νομίζω η aspose έχει μια τέτοια λύση).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: Διάθεση αρχείων σε χρήστες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53782.aspx</link><pubDate>Thu, 17 Sep 2009 22:00:24 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53782</guid><dc:creator>tasos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53782.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=53782</wfw:commentRss><description>&lt;P&gt;Εγώ χρησιμοποιώ αυτή τη συνάρτηση:&lt;/P&gt;&lt;P&gt;&lt;PRE&gt;&lt;SPAN style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;    &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Sub&lt;/SPAN&gt; DownloadFile(&lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;ByVal&lt;/SPAN&gt; FilePath &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;String&lt;/SPAN&gt;)
        &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/SPAN&gt; file &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/SPAN&gt; System.IO.FileInfo &lt;SPAN style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;New&lt;/SPAN&gt; System.IO.FileInfo(FilePath)
        &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;If&lt;/SPAN&gt; file.Exists &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Then&lt;/SPAN&gt;
            Response.&lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Clear&lt;/SPAN&gt;()
            Response.AddHeader(&lt;SPAN style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Content-Disposition"&lt;/SPAN&gt;, &lt;SPAN style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"attachment; filename="&lt;/SPAN&gt; &amp;amp; file.Name)
            Response.AddHeader(&lt;SPAN style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Content-Length"&lt;/SPAN&gt;, file.Length.ToString())
            Response.ContentType &lt;SPAN style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"application/octet-stream"&lt;/SPAN&gt;
            Response.WriteFile(file.FullName)
            Response.&lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/SPAN&gt;()
            Response.Close()
            file &lt;SPAN style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Nothing&lt;/SPAN&gt;
        &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;If&lt;/SPAN&gt;
    &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Sub&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;Το καλό είναι ότι παίζει και με αρχεία που βρίσκονται στον ~/App_Data φάκελο. Οπότε βρίσκονται σε private χώρο και με στατικό link δεν μπορεί να το πάρει κανένας. Στην ουσία ελέγχεις εσύ ποιο αρχείο θα δώσεις και σε ποιον. &lt;/P&gt;</description></item><item><title>Απ: Διάθεση αρχείων σε χρήστες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53781.aspx</link><pubDate>Thu, 17 Sep 2009 21:41:54 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53781</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53781.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=53781</wfw:commentRss><description>&lt;P&gt;Με την βοήθεια ενός HttpHandler μπορείς να ελέγξεις ποιος θέλει να κατεβάσει ένα αρχείο από το site σου. &lt;A href="http://www.code-magazine.com/Article.aspx?quickid=0703031"&gt;Δες εδώ πως...&lt;/A&gt;&lt;/P&gt;</description></item><item><title>Απ: Διάθεση αρχείων σε χρήστες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53780.aspx</link><pubDate>Thu, 17 Sep 2009 21:28:30 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53780</guid><dc:creator>Pak</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53780.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=53780</wfw:commentRss><description>Βασικα και λω αυτό θα σου πρότεινα, να φτιάξεις ένα μηχανισμό&amp;nbsp;membership ο οποίος θα διαχειρίζεται αυτο που θες να πετύχεις. Εφοσον καποιος πληρώσει τότε και μονο να μπορεί να δει τα αρχεία. Το password πάνω σε αυτά μπορείς να το βάλεις σαν ένα extra επίπεδο προστασίας. Η όλη ιδέα είναι να υπάρχει ελεγχόμενη προσβαση στο αρχείο, είτε σε επίπεδο χρήστη, είτε σε επίπεδο αρχείου είτε και στα δύο. Φυσικά, εφόσον κάποιος ανοίξει το αρχείο&amp;nbsp;και το στείλει... στα torrents, εκεί δεν σε σώζει τίποτα &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt; !</description></item><item><title>Απ: Διάθεση αρχείων σε χρήστες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53778.aspx</link><pubDate>Thu, 17 Sep 2009 20:58:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53778</guid><dc:creator>Ευθύμης Δημόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53778.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=53778</wfw:commentRss><description>Σε ευχαριστώ αλλά τα αρχεία (σαν προϊόντα) δε θα ήθελα να τα έχω "χύμα" σε ένα directory. Θέλω όσο το δυνατόν να είναι προστατευμένα να μη μπορει κάποιος π.χ. με ένα directory listing να τα κατεβάσει αφού και κλειδωμένα να είναι κάποιος με λίγο googling μπορεί να τα ανοίξει.&lt;br&gt;&lt;br&gt;Κάπου googliζοντας βρήκα σαν λύση τη δημιουργία ενός directory το οποίο να είναι password protected ώστε να ανεβάσω τα αρχεία μου και μόλις ο πελάτης ολοκληρώσει τη παραγγελία του και τη πληρωμή με επιτυχία να του στέλνω (automated) ένα μοναδικό url για να μπορεί να τα "κατεβάσει". Επίσης θα μπορώ να ελέγχω πότε το link λήγει (expired) χρονικά είτε μετά απο συγκεκριμμένο αριθμό downloads.&lt;br&gt;&lt;br&gt;καμμία άλλη ιδέα;&lt;br&gt;</description></item><item><title>Απ: Διάθεση αρχείων σε χρήστες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53777.aspx</link><pubDate>Thu, 17 Sep 2009 20:30:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53777</guid><dc:creator>Pak</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53777.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=53777</wfw:commentRss><description>Το ποιο γρηγόρο και εύκολο πράγμα που μου έρχεται στο μυαλό είναι να έχεις compressed τα αρχεία στο web site και κλειδωμένα με ένα κωδικό. Εφοσόν κάποιος πληρώσει μπορείς να του στείλεις το password για να τα ξεκλειδώσει.&amp;nbsp;</description></item><item><title>Διάθεση αρχείων σε χρήστες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53775.aspx</link><pubDate>Thu, 17 Sep 2009 19:44:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53775</guid><dc:creator>Ευθύμης Δημόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53775.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=53775</wfw:commentRss><description>Καλημέρα σε όλους. &lt;br&gt;Αντιμετωπίζω τον εξής προβληματισμό: &lt;br&gt;&lt;br&gt;Αυτό που θέλω να κάνω είναι να πουλάω κάποια αρχεία (pdf, doc, xls κ.λπ) μέσα από ένα web site.&lt;br&gt;Το ηλεκτρονικό κατάστημα το έχω.&lt;br&gt;&lt;br&gt;Το θέμα είναι &lt;b&gt;πώς θα πρέπει να "δίνονται" τα αρχεία που κάποιος έχει αγοράσει;&lt;/b&gt;&lt;br&gt;Δηλαδή έστω ο πελάτης αγοράζει κάποιο ηλεκτρονικό αρχείο. Πληρώνει. Μετά; Πώς το αποκτά; του δίνω direct link (μπααααα, δε νομιζω!), πρέπει να μπει με κάποιους κωδικούς σε μια ενότητα του web site και αφού γίνει registered να μπορέσει να το κατεβάσει; μέσω email; Τα αρχεία τα αποθηκεύω σε κάποιο directory;&lt;br&gt;&lt;br&gt;Εσείς πώς θα το χειριζόσασταν;&lt;br&gt;</description></item></channel></rss>