<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1766233964891882687</id><updated>2012-01-24T12:13:33.584-06:00</updated><category term='User experience'/><category term='SharePoint Server'/><category term='JW Player'/><category term='Information Architecture'/><category term='Token Authentication JW Player'/><category term='insane'/><category term='GAC'/><category term='Flash CS 4 Professional'/><category term='bad design'/><category term='features'/><category term='Signed'/><category term='MOSS'/><category term='User Authentication with Flash Media Server and JW Player'/><category term='Flash Interactive Server'/><category term='Flash Media Server'/><category term='Tags: Enterprise Library'/><category term='website'/><category term='annoying'/><category term='Strong Name'/><category term='Web Service'/><category term='widgets'/><title type='text'>Fixed the *glitch*</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fixtheglitch.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1766233964891882687/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://fixtheglitch.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>LowerLevelInmate</name><uri>http://www.blogger.com/profile/17270157974539121957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1766233964891882687.post-7931131986174943517</id><published>2009-08-02T23:53:00.024-05:00</published><updated>2009-12-22T13:42:22.667-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='insane'/><category scheme='http://www.blogger.com/atom/ns#' term='features'/><category scheme='http://www.blogger.com/atom/ns#' term='widgets'/><category scheme='http://www.blogger.com/atom/ns#' term='website'/><category scheme='http://www.blogger.com/atom/ns#' term='User experience'/><category scheme='http://www.blogger.com/atom/ns#' term='Information Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='annoying'/><category scheme='http://www.blogger.com/atom/ns#' term='bad design'/><title type='text'>The Internets 10 Most Annoying Website Features</title><content type='html'>&lt;span style=";font-family:georgia;font-size:100%;"  &gt;How many times have you visited a site and thought, &lt;em&gt;“oh, here we go again,&lt;/em&gt; &lt;em&gt;what the hell?”&lt;/em&gt; &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=";font-family:georgia;font-size:100%;"  &gt;
Popup menus invading your personal space; site streakers and digital flashers exposing themselves asking for intimate details about your personal life; and oh yeah, ads splatters about like graffiti showing up in places your mother would be embarrassed to mention. &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=";font-family:georgia;font-size:100%;"  &gt;
Yeah, it drives people batty. So for a moment, I’m going to play user advocate and point out 10 violations that are simply insane… &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;
    &lt;tbody&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;span style=";font-family:georgia;font-size:130%;"  &gt;&lt;strong&gt;1. Vibrant Pop up Links&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;strong&gt;What is it&lt;/strong&gt; – Pop up box generated by mousing over key words in content areas. Usually represented by double or single dashed underlines meant to draw the user attention to key word. &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;strong&gt;Where it came from&lt;/strong&gt; - OK I understand the concept of this technology. Some marketing executive sitting on an airplane toilet reading an article about per click revenue got an idea. It went something like this &lt;em&gt;“Hey I know, we can scan keyword in a web page that will pop-up a box to drive per-click revenue.”&lt;/em&gt; Next things you know, the software guys are in the back room with pitch forks in hand and Malakoff cocktail at the ready. They’re on the prowl for anyone that even looks like a marketing type. After cooler heads prevail, like Houdini appearing out of thin air, “&lt;em&gt;PURE FRUSTRATION IS BORN&lt;/em&gt;” in the form of this “&lt;em&gt;STUPID&lt;/em&gt;” little widget.&lt;/span&gt;

&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;strong&gt;How the user see it&lt;/strong&gt; – Simply stupid, like we’re not inundated with enough advertisements. Now our precious 48 seconds scanning an article has been simply ruined. As if there isn’t enough cunning ways to get clicks. Like I say this technology is simply &lt;em&gt;“STUPID”&lt;/em&gt;.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://lh3.ggpht.com/_9LhsRLpkRC4/SnnFWUZk9dI/AAAAAAAAAHg/9JVURLsrRKk/s1600-h/Vibrant%20Popup%5B3%5D.jpg"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="Vibrant Popup" alt="Vibrant Popup" src="http://lh3.ggpht.com/_9LhsRLpkRC4/SnnFWzDa6WI/AAAAAAAAAHk/_TJDeqmZ8Zg/Vibrant%20Popup_thumb%5B1%5D.jpg?imgmax=800" width="348" border="0" height="225" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style=";font-family:georgia;font-size:130%;"  &gt;&lt;strong&gt;2. Yahoo Mail and Weather Expanders&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;strong&gt;What is it&lt;/strong&gt; – A sliding panel that shifts either up or down or left to right exposing our intimate email details or weather or whatever else they can come up with. &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Where it came from&lt;/strong&gt; – Real estate is valuable, even in the virtual world. In an effort to conserve on real estate thus &lt;em&gt;“be frugal”&lt;/em&gt;. Yet, frugal to the point that user will be driven batty by features. The funny thing, the problem is not with the widget but how it’s implemented. Mousing over scrolling text and pictures are just simply annoying and confuse the heck out of users. It’s like sitting on a whoopee cushion, “&lt;i&gt;wow, what was that”&lt;/i&gt;.&lt;/span&gt;&lt;/span&gt;
&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;strong&gt;
How the users see it&lt;/strong&gt;&lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt; – This is what I call, “&lt;em&gt;what the hell, I didn’t ask for that&lt;/em&gt;”. Simple, I appreciate the weather “&lt;em&gt;cool&lt;/em&gt;” but I don’t want the details. Kill the details, I know it hot, I live in Texas. Oh by the way, I’ll pick up my mail when I’m good and ready too. Thanks, but no thanks.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://lh5.ggpht.com/_9LhsRLpkRC4/SnnHvSmmOyI/AAAAAAAAAHo/2u1qX9qHHp8/s1600-h/Yahoo%20Expanders%5B3%5D.jpg"&gt;&lt;img style="border: 0px none ; display: inline;" title="Yahoo Expanders" alt="Yahoo Expanders" src="http://lh3.ggpht.com/_9LhsRLpkRC4/SnnHwJzVY1I/AAAAAAAAAHs/6YQ_EEFKWh4/Yahoo%20Expanders_thumb%5B1%5D.jpg?imgmax=800" width="361" border="0" height="234" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style=";font-family:georgia;font-size:130%;"  &gt;&lt;strong&gt;3. Skip this Ad&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;What is it&lt;/strong&gt; – When the user clicks a link to a follow on page, instead of delivering the content; Straight out machine gun Kelly pop in a cap! 187, another advertiser on user drive-by&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;strong&gt;Where it came from&lt;/strong&gt; – The devil, honest, it came from Satan himself. All you marketing types, I’m going to give you a break because I know, I know – “&lt;em&gt;the devil made you do it&lt;/em&gt;”. I pour a little liquor on the curb to all my information architect types that took to the noose over this one - RIP. &lt;/span&gt;
&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;strong&gt;
How the users see it&lt;/strong&gt; – It spun from hell itself, how else are users suppose to see it. I click a link, promising “&lt;em&gt;MY”&lt;/em&gt; content; instead some weird page having absolutely nothing to do with what I just requested is displayed. I know – “&lt;em&gt;the devil made you do it&lt;/em&gt;”.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://lh5.ggpht.com/_9LhsRLpkRC4/SnnHwq_xAZI/AAAAAAAAAHw/Cll6wy9gddo/s1600-h/Skip%20This%20Ad%5B3%5D.jpg"&gt;&lt;img style="border: 0px none ; display: inline;" title="Skip This Ad" alt="Skip This Ad" src="http://lh6.ggpht.com/_9LhsRLpkRC4/SnnHxUt_xJI/AAAAAAAAAH0/lEefpmin8AE/Skip%20This%20Ad_thumb%5B1%5D.jpg?imgmax=800" width="362" border="0" height="226" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style=";font-family:georgia;font-size:130%;"  &gt;&lt;strong&gt;4. Who wrote the article&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;What is it&lt;/strong&gt; – Ok strictly speaking this is not a technology, just a pet peeve of mine, but it’s on the web so I threw it in. Its content from a website without an author indicated and/or cited reference. I did not know Associated Press was an author.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;Where it came from&lt;/b&gt; – This is just sneaky. You’re reading a news article online, like most articles advocacy reporting is the new trend in news agencies. Ok, so who actually wrote the article, no writer or sources are cited. In other words who wrote this article? I thought it was standard practice that the writers identify themselves.&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;
How the users see it&lt;/b&gt; – This under handedness just continues to build distrust of the news. Hey, most news agencies are hurting for cash, right. So if they deliver content which annoy the customer base then the customer won’t find value in the news, so less revenue….. “&lt;i&gt;Just thinking off the top of my head here&lt;/i&gt;”&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://lh6.ggpht.com/_9LhsRLpkRC4/SnnHx6nhNcI/AAAAAAAAAH4/WlYr4y-HOc0/s1600-h/Who%20Wrote%20the%20Article%5B4%5D.jpg"&gt;&lt;img style="border: 0px none ; display: inline;" title="Who Wrote the Article" alt="Who Wrote the Article" src="http://lh6.ggpht.com/_9LhsRLpkRC4/SnnHyT3zpBI/AAAAAAAAAH8/zJdnzcAGSwU/Who%20Wrote%20the%20Article_thumb%5B2%5D.jpg?imgmax=800" width="392" border="0" height="252" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;b&gt;&lt;span style=";font-family:georgia;font-size:130%;"  &gt;5. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=";font-family:georgia;font-size:130%;"  &gt;Webpages that auto play media&lt;/span&gt; &lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;What is it – &lt;/b&gt;The user opens up a page then streaming media immediately starts in on them.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;Where it came from&lt;/b&gt; – The porn industry and teenagers, then adopted by main stream media sources. User experience people would never, in a million years recommend, &lt;em&gt;“when a user opens a web page it starts blaring streaming media”&lt;/em&gt; of any type, unless of course it’s for personal pleasure.&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;
How the users see it &lt;/b&gt;– Damn, my boss just caught me surfing the net again or “&lt;em&gt;Hey, that’s not suppose to show on my screen.”&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://lh4.ggpht.com/_9LhsRLpkRC4/SnnHzenFbQI/AAAAAAAAAIA/EVMUn43Vp3s/s1600-h/Autoplay%20Streaming%20Media%5B3%5D.jpg"&gt;&lt;img style="border: 0px none ; display: inline;" title="Autoplay Streaming Media" alt="Autoplay Streaming Media" src="http://lh6.ggpht.com/_9LhsRLpkRC4/SnnHz7flZpI/AAAAAAAAAIE/Nf_RTY_6Go4/Autoplay%20Streaming%20Media_thumb%5B1%5D.jpg?imgmax=800" width="388" border="0" height="252" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;6. &lt;/b&gt;&lt;b&gt;Animated advertisements on print pages&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;What is it – &lt;/b&gt;Web pollution: the introduction of valueless items to a page that causes irritation, disorder and annoyance to the user.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;Where it came from –&lt;/b&gt; I have no idea how this bright idea got implemented.&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;
How the users see it&lt;/b&gt; - “&lt;em&gt;What the hell! Really, animated advertisements on a print page. What is this -- The Harry Potter newspaper. Great, so now my article is 13 pages of junk instead of the 2 pages I really need.&lt;/em&gt;”&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://lh5.ggpht.com/_9LhsRLpkRC4/SnnIKxGIy3I/AAAAAAAAAII/ETAmb1w9dyw/s1600-h/Antimated%20Ads%20on%20Print%20Pages%5B3%5D.jpg"&gt;&lt;img style="border: 0px none ; display: inline;" title="Antimated Ads on Print Pages" alt="Antimated Ads on Print Pages" src="http://lh4.ggpht.com/_9LhsRLpkRC4/SnnILb1ZnWI/AAAAAAAAAIM/ZHs2miNBQ2s/Antimated%20Ads%20on%20Print%20Pages_thumb%5B1%5D.jpg?imgmax=800" width="397" border="0" height="248" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;7. &lt;/b&gt;&lt;b&gt;Print Dialog without the print page&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;What is it – &lt;/b&gt;The user presses the print link, instead of clean content, just the print dialog is displayed.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;Where it came from&lt;/b&gt; – Lazy content administrators not removing the graphics and other pollution providing clean, clear print pages.&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;
How the users see it&lt;/b&gt; – This sucks…..&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://lh6.ggpht.com/_9LhsRLpkRC4/SnnIL3dZHmI/AAAAAAAAAIQ/mYfH5IrnypI/s1600-h/Print%20Dialogue%20Box%5B3%5D.jpg"&gt;&lt;img style="border: 0px none ; display: inline;" title="Print Dialogue Box" alt="Print Dialogue Box" src="http://lh4.ggpht.com/_9LhsRLpkRC4/SnnIMS9pMrI/AAAAAAAAAIU/GPozBzrzhI8/Print%20Dialogue%20Box_thumb%5B1%5D.jpg?imgmax=800" width="398" border="0" height="257" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;8. &lt;/b&gt;&lt;b&gt;Screen Flashers and Streakers&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;What is it &lt;/b&gt;– The user gets bombarded with flying dialog boxes demanding stuff.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;Where it came from&lt;/b&gt; – Marketing departments once again hunting for clicks to justify themselves. Usually about this time, user experienced professionals are sitting at their desks drunk and spilling their guts about how their life sucks.&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;
How the users see it –&lt;i&gt; “&lt;/i&gt;&lt;/b&gt;&lt;i&gt;Hey, whoa, wait a minute, I didn’t expect that is all I’m saying. We just got to know each other. I mean, I just got to your site and now you’re flashing me with Chevy Cobalt ads all over the screen. Hell, I don’t know you like that!” &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;Or &lt;/span&gt;&lt;i&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;“Oh, damn so soon, I mean you’re just streaking across my screen asking me to register or for a survey. Can I at least get a name and a phone number?”&lt;/span&gt;&lt;/i&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;Yeah, that’s what it feels like - a bad date…..&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://lh3.ggpht.com/_9LhsRLpkRC4/SnnINH8txoI/AAAAAAAAAIY/crdDUXOmWgM/s1600-h/Screen%20Flahers%5B3%5D.jpg"&gt;&lt;img style="border: 0px none ; display: inline;" title="Screen Flahers" alt="Screen Flahers" src="http://lh5.ggpht.com/_9LhsRLpkRC4/SnnINrxpwCI/AAAAAAAAAIc/jDSLIl82dd8/Screen%20Flahers_thumb%5B1%5D.jpg?imgmax=800" width="408" border="0" height="265" /&gt;&lt;/a&gt;&lt;a href="http://lh3.ggpht.com/_9LhsRLpkRC4/SnnIOC0ZjHI/AAAAAAAAAIg/eIfBfD5MRgg/s1600-h/Screen%20Streakers%5B3%5D.jpg"&gt;&lt;img style="border: 0px none ; display: inline;" title="Screen Streakers" alt="Screen Streakers" src="http://lh3.ggpht.com/_9LhsRLpkRC4/SnnIOsy3WhI/AAAAAAAAAIk/jhJTIgeoA6A/Screen%20Streakers_thumb%5B1%5D.jpg?imgmax=800" width="422" border="0" height="272" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;b&gt;&lt;span style=";font-family:georgia;font-size:130%;"  &gt;9. Paid a&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=";font-family:georgia;font-size:130%;"  &gt;dvertisement in videos &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;What is it – &lt;/b&gt;The user clicks a link expecting a streaming video – Bam! Advertisement up the wazzu…&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;Where it came from&lt;/b&gt; – The same promise that cable was suppose to deliver. You pay for the service and you get no commercials. Except now it’s free, so companies are like – &lt;i&gt;“kiss our ass, you’re going to see it”&lt;/i&gt;.&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;
How the users see it &lt;/b&gt;– SOB, I just cannot get away from these stupid advertisements.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://lh5.ggpht.com/_9LhsRLpkRC4/SnnIpj-VxLI/AAAAAAAAAIo/bvDpNQegCkk/s1600-h/Media%20Ads%5B3%5D.jpg"&gt;&lt;img style="border: 0px none ; display: inline;" title="Media Ads" alt="Media Ads" src="http://lh4.ggpht.com/_9LhsRLpkRC4/SnnIpwKvQ0I/AAAAAAAAAIs/eJliznP-Gms/Media%20Ads_thumb%5B1%5D.jpg?imgmax=800" width="409" border="0" height="265" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;10. &lt;/b&gt;&lt;b&gt;Information Overload&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;What is it&lt;/b&gt; – Global website warming, content pollution, information dumping – just too much content to absorb…&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;Where it came from&lt;/b&gt; – The U.S. Tax Code and China… Two schools of thought here -- overload them for more effective confusion; and with one billion people and limited real estate, pack everything you can into as much space as possible. Even for information architects there are limits to their abilities. &lt;/span&gt;&lt;/span&gt;
&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;b&gt;
How the users see it &lt;/b&gt;– Ahhhhh…. Muhhhhh…..Ahhhhh…..&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://lh6.ggpht.com/_9LhsRLpkRC4/SnnIqdzznJI/AAAAAAAAAIw/EAblwkX0pu0/s1600-h/Information%20Overload%5B4%5D.jpg"&gt;&lt;img style="border: 0px none ; display: inline;" title="Information Overload" alt="Information Overload" src="http://lh4.ggpht.com/_9LhsRLpkRC4/SnnIq7DXXlI/AAAAAAAAAI0/qcDXvmzCNuo/Information%20Overload_thumb%5B2%5D.jpg?imgmax=800" width="355" border="0" height="529" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1766233964891882687-7931131986174943517?l=fixtheglitch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fixtheglitch.blogspot.com/feeds/7931131986174943517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1766233964891882687&amp;postID=7931131986174943517' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1766233964891882687/posts/default/7931131986174943517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1766233964891882687/posts/default/7931131986174943517'/><link rel='alternate' type='text/html' href='http://fixtheglitch.blogspot.com/2009/08/10-website-features-that-drive-users.html' title='The Internets 10 Most Annoying Website Features'/><author><name>LowerLevelInmate</name><uri>http://www.blogger.com/profile/17270157974539121957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_9LhsRLpkRC4/SnnFWzDa6WI/AAAAAAAAAHk/_TJDeqmZ8Zg/s72-c/Vibrant%20Popup_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1766233964891882687.post-163641001622235500</id><published>2009-02-28T17:03:00.013-06:00</published><updated>2009-03-01T11:44:28.176-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Strong Name'/><category scheme='http://www.blogger.com/atom/ns#' term='Tags: Enterprise Library'/><category scheme='http://www.blogger.com/atom/ns#' term='Signed'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><category scheme='http://www.blogger.com/atom/ns#' term='GAC'/><title type='text'>How to Strong Name the Enterprise Library 4.1</title><content type='html'>&lt;span style="font-weight: bold;font-family:georgia;" &gt;Introduction&lt;/span&gt;

&lt;span style="font-family:georgia;"&gt;The Enterprise Library is a very useful tool for developing applications.  The libraries provide such services as data, caching and logging.   One drawback of version 4.1 compared to 3.1 is the additionally effort required to strong name the assemblies.   In completing this task you could expect to spend about 4 hours preparing the dlls.   It’s not difficult but seeing time is of the essence I wanted to help shorten the effort.&lt;/span&gt;

&lt;span style="font-family: georgia;font-family:georgia;" &gt;Here’s a zip of the libraries which have been strong named [&lt;a href="http://www.megaupload.com/?d=DSR7QHL7"&gt;Full download&lt;/a&gt; - &lt;a href="http://www.megaupload.com/?d=RCN51NSA"&gt;DLL Only&lt;/a&gt;].  You can re-compile to customize the public/private key or just download the dlls then install them in your GAC.   The directory path “sn” – [strong name] holds just the dlls.  Included in the directory is the GACutil.exe, SN.exe and the .pk and .snk files.   Navigate to the sn directory then execute the GAC_EntLib.bat batch process.&lt;/span&gt;&lt;span style="font-family: georgia;"&gt;  This will automatically install all the dlls in your GAC.  If you only need a few of the libraries then navigate to the list.txt file to remove the unnecessary blocks.&lt;/span&gt;

&lt;span style="font-family:georgia;"&gt;If you’d like to customize the public/private key, the process is detailed below:&lt;/span&gt;

&lt;span style="font-weight: bold;font-family:georgia;" &gt;Steps&lt;/span&gt;

&lt;span style="font-family:georgia;"&gt;To create a key pair&lt;/span&gt;

&lt;span style="font-family:georgia;"&gt;   1. At a command prompt, go to the directory that will hold the key pair.&lt;/span&gt;
&lt;span style="font-family:georgia;"&gt;   2. To create a key pair, locate the sn.exe in the sn directory then type sn –k keyfile.snk (note: keyfile is what ever name you want to give it)&lt;/span&gt;

&lt;span style="font-family:georgia;"&gt;You must extract the public key from the key pair (the public key is required for updating the InternalsVisibleTo attribute). The following procedure describes how to extract and display the public key.&lt;/span&gt;

&lt;span style="font-family:georgia;"&gt;To extract and display the public key&lt;/span&gt;

&lt;span style="font-family:georgia;"&gt;   1. At the command prompt, type sn –p keyfile.snk publickey.pk to extract the public key from the key pair.&lt;/span&gt;
&lt;span style="font-family:georgia;"&gt;   2. Type sn –tp publickey.pk to display the public key in hexadecimal. Keep the Configuration Console window open (or copy the output to a text file).&lt;/span&gt;

&lt;span style="font-family:georgia;"&gt;Once the key is extracted then search for the InternalsVisibleTo attribute.  Replace the current PublicKey with your own.  Remember that the key from the extract process will be on multiple lines, so remove the line returns for one continuous string.&lt;/span&gt;

&lt;span style="font-family:georgia;"&gt;After completing this step then recompiling the project run the BuildLibraryAndCopyAssemblies.bat in the Scripts folder.  This will add the dlls to the bin directory.  Copy these dlls into the sn directory then execute the GAC_EntLib.bat batch process.  This will install all dlls in the GAC. &lt;/span&gt;

&lt;span style="font-family:georgia;"&gt;You will notice the Gacutil and Sn tools are included in the project.  For those missing or can’t find the exe's, I made them readily available.   &lt;/span&gt;

&lt;span style="font-weight: bold;font-family:georgia;" &gt;Reference&lt;/span&gt;

&lt;span style="font-family:georgia;"&gt;If you’d like to conduct the manual process yourself then knock yourself out.   Here’s the document to help you achieve your goal.&lt;/span&gt;

&lt;span style="font-family:georgia;"&gt;Strong Naming the Enterprise Library Assemblies&lt;/span&gt;
&lt;span style="font-family:georgia;"&gt;http://msdn.microsoft.com/en-us/library/dd140121.aspx&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1766233964891882687-163641001622235500?l=fixtheglitch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fixtheglitch.blogspot.com/feeds/163641001622235500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1766233964891882687&amp;postID=163641001622235500' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1766233964891882687/posts/default/163641001622235500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1766233964891882687/posts/default/163641001622235500'/><link rel='alternate' type='text/html' href='http://fixtheglitch.blogspot.com/2009/02/strong-named-enterprise-library-41.html' title='How to Strong Name the Enterprise Library 4.1'/><author><name>LowerLevelInmate</name><uri>http://www.blogger.com/profile/17270157974539121957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1766233964891882687.post-744184869788230794</id><published>2009-02-01T09:32:00.015-06:00</published><updated>2009-02-01T10:27:02.654-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Token Authentication JW Player'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Service'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash CS 4 Professional'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash Media Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash Interactive Server'/><category scheme='http://www.blogger.com/atom/ns#' term='JW Player'/><category scheme='http://www.blogger.com/atom/ns#' term='User Authentication with Flash Media Server and JW Player'/><title type='text'>Token-based authentication using Asp .Net, JW Player 4.3, Web Services and Flash Media Server 3.5</title><content type='html'>Tags: JW Player, Web Service, Flash Media Server, Flash Interactive Server, Flash CS 4 Professional, Token Authentication JW Player, User Authentication

&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;/span&gt;

With the release of Abode Flash Media Server 3.5 companies can expand their media capabilities through a suite of web distribution channel such as Video-on-Demand, Multi-Communication Chat and Live streaming. The server provides security mechanisms to verify Flash players, encrypt media streams and cross-domain authorization. However, in order to use a customized security solution the server can use web services to integrate with your application.

This article will cover how to get your Adobe Flash Media server to authenticate users then authorize media resources for streaming content. The nice thing is we’ll use a real world example ASP .Net Web Site and one of the most popular Flash Players on the market to do it, the JW Player 4.3.

To download free complete pdf article click &lt;a href="http://www.megaupload.com/?d=AVBRNCBU"&gt;here&lt;/a&gt;

To download the free demo code click &lt;a href="http://www.megaupload.com/?d=KFFGMN04"&gt;here&lt;/a&gt;

&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Architecture&lt;/span&gt;&lt;/span&gt;

Before we dive too deep, let’s take a look at our system architectural approach by piecing together our solution into a holistic offering. Our components consist of a Flash Media Server (FMS), an IIS Web Server, a Sql Server 2005, ASP .Net and the JW Player. The open source JW Player is a nice offering because it’s free, we don’t need to do much and it’s easy to add into web page. The only hurdle, is overcoming our understanding of ActionScript and server-side development. We don’t have to worry too much because Adobe has done a good job of using Object-Oriented technology to develop the language which will smooth our efforts.

So let’s take our technology stack and put it in perspective. The FMS along with the JW Player will stream our content, IIS will server up the Asp .Net pages and Microsoft Sql Server 2005 will handle membership and roles authentication service. As a note, if you’re unfamiliar with Membership and Roles in Asp .Net, I’ve included resources to some of the leading authors in this area namely, Scott Guthrie and Scott Mitchell.

Now that we know what needs to be in place, let’s get a visual of what this looks like.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9LhsRLpkRC4/SYXFT3tCkZI/AAAAAAAAABk/NnXaYx4An_s/s1600-h/FlashArchitecture.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 248px;" src="http://1.bp.blogspot.com/_9LhsRLpkRC4/SYXFT3tCkZI/AAAAAAAAABk/NnXaYx4An_s/s320/FlashArchitecture.png" alt="" id="BLOGGER_PHOTO_ID_5297857481832305042" border="0" /&gt;&lt;/a&gt;
[APPLICATION ARCHITECTURE]

Below is a summary of how our technology blocks will interoperate with each other:

1. A clients request the web page from our IIS server with the Open Source JW Player SWF file.

2. The client presses play to request the streaming video.

3. An encrypted client token that includes the user information, file requested and SWF file is sent via RTMP to the Flash Media Server (FMS).

4. A SWF verification process is enacted by the FMS to ensure the client’s JW player is authorized. After completion of SWF verification, the FM Server contacts the authentication web service to request client authorization credential.

5. Successful authentication will load and stream the media from the share. Failed authentication will refuse the request.

6. The streaming media is displayed to the client.

Let’s move on to what we’ll need to develop our solutions.

&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Requirements&lt;/span&gt;&lt;/span&gt;

To complete this demonstration you’ll need the following software and files:

1. &lt;a href="http://www.adobe.com/go/tryflash_media_server"&gt;Download &lt;/a&gt;- Flash Media Development Server 3.5

2. &lt;a href="http://www.adobe.com/go/devcenter_flpro_try"&gt;Download &lt;/a&gt;- Flash CS4 Professional

3. &lt;a href="http://msdn.microsoft.com/vs2008/products/cc268305.aspx"&gt;Download &lt;/a&gt;- Microsoft Visual Studio 2008

4. &lt;a href="http://www.microsoft.com/sqlserver/2005/en/us/trial-software.aspx"&gt;Download &lt;/a&gt;- Microsoft Sql Server 2005

5. &lt;a href="http://developer.longtailvideo.com/trac/"&gt;Download &lt;/a&gt;- JW Player Source Code (note: Subversion is used to connect to the source control for the JW Player. The source control path – {svn co http://developer.longtailvideo.com/svn/tags/wmvplayer-1.1}

6. &lt;a href="http://subversion.tigris.org/getting.html#windows"&gt;Download &lt;/a&gt;– Subversion

7. &lt;a href="http://msdn.microsoft.com/en-us/library/ywdtth2f%28VS.71%29.aspx"&gt;Reference &lt;/a&gt;- Creating ASP.NET Web Applications. ASP .Net Web Project configured to use the Membership and Role providers. The project should include the Login.aspx to authenticate users and a Default.aspx to display the JW Player.

&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Application Development&lt;/span&gt;&lt;/span&gt;

Now let review what we will be implementing in a more concrete manner. The below item will keep us focused on each piece that needs to be developed.

1. Modify the JW Player to pass our user token and requested resource

2. Embed the JW Player in our secure web page

3. Set an encrypted user token for the JW Player to send to the FMS Server

4. Implement an ActionScript component to accept and authenticate the user token then authorize the resource for streaming.

5. Implement a web service to accept the user token and requested resource then return the authentication/authorization result.

6. Notify the JW Player to accept or refuse the connection.

So in summary, we have to modify the JW Player, create an ASP .Net Web Form, develop a Server-Side ActionScript Component, build a web service then configure our FMS Server. Great, let’s move on to make this happen.

&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Modifying the JW Player&lt;/span&gt;&lt;/span&gt;

Using Subversion you should have downloaded the latest code from the open source repository for the JW player to a working folder.

To create the JW Player Flash project follow the instructions below:

&lt;span style="font-weight: bold;"&gt;To create a new project&lt;/span&gt;:

&lt;span style="font-weight: bold;"&gt;1. Do one of the following to open a new project&lt;/span&gt;:

Select New Project from the Project pop-up menu.

If no other project is open, open the Flash Project panel and select Create a New Project in the panel window.

Select File &gt; New. On the General tab, select Flash
Project.

If no project is currently open, right-click (Windows) or Control-click (Macintosh) in the Document window of a saved Flash document or ActionScript file and select Add to New Project from the context menu.

&lt;span style="font-weight: bold;"&gt;2. In the New Project dialog box, enter a name for the project and click Save.&lt;/span&gt;

To open an existing project, do one of the following:

Select Open Project from the Project pop-up menu. Navigate to the project and click Open.

Double-click the file.

If no other project is open, open the Flash Project panel and select Open an Existing Project in the panel window. Navigate to the project and click Open.

Select File &gt; Open. Navigate to the project and click Open.
&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Modify the JW Player code base&lt;/span&gt;&lt;/span&gt;

Once we have the project setup, we need to modify two files the com/jeroenwijering/player/Player.as and com/jeroenwijering/models/RTMPModel.as. These are the key pieces of code that will take our user access and resource tokens then pass them to the server to be authenticated.

&lt;span style="font-weight: bold;"&gt;Player.as&lt;/span&gt;

This file holds the configuration object that receives the flashvars from the JW Player player. We need to add a variable called “accesstoken:undefined” to the “public var config:Object” array. The flashvars are parameters Flash Players can use to provider necessary parameters to players, the server or both. Our parameter will be set to the {accesstoken} parameter we’ll set using code-behind in our web page. This will also give us an opportunity to encrypt the user information. The media resource will come from the {file} parameter which is already available. We only have to pass the two parameters to the server.

&lt;span style="font-weight: bold;"&gt;RTMPModel.as&lt;/span&gt;

Since we’re streaming content our player will connect to the server over the RTMP protocol. The RTMPModel component will initiate the connection then passes our parameters to the server-side component. We add the access token and file resource as parameters to the connection object. Below is the example code:

&lt;a href="http://www.megaupload.com/?d=KFFGMN04"&gt;[SEE DOWNLOAD FOR CODE BLOCK]
&lt;/a&gt;
&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Deploy the code&lt;/span&gt;&lt;/span&gt;

After completion of the code changes then click File &gt; Publish to compile the code. We’re done with the JW Player. A nice feature of completing this step is the SWF verification uses a checksum process to verify players. By adding this code we’ve automatically made sure the player is unique. What this means is we can now take this player include it in our SWFs folder and our web site, without worrying about others hacking another player to retrieve our secure content.

&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Create the secure web page embedded with the JW Player&lt;/span&gt;&lt;/span&gt;

Now we can create your Asp .Net C# web project then add a folder called /embed. We’re going to copy both the player.swf and swfobject.js from the JW Player Flash project we just published into this location. Also, we’ll add a Default.aspx and Login.aspx to the project. The Default.aspx will hold the JW Player and the Login.aspx will allow us to login user. Please review the Reference resource provided at the end of this document if you’re unfamiliar with ASP .Net web project and membership based security.


We’re going to include our JW Player in the secured web page using the tag below:
&lt;a href="http://www.megaupload.com/?d=KFFGMN04"&gt;
[SEE DOWNLOAD FOR CODE BLOCK]&lt;/a&gt;

The flashvars will be left blank for the time being. We’re going to use our code-behind populate this parameter with access token.

Below is the information we’re going to provide to the flashvar:

file=media_resource_path&amp;amp;streamer=rtmp://flash_media_server_address/application_name&amp;amp;encrypted_accesstoken

media_resource_path: The path location of the file resource on the network server

flash_media_server_ip: The flash media server url or IP address

application_name: The name of your Flash Media Server application

encrypted_accesstoken: Encrypted user access token passed to the FMS for authentication/authorization

Before we dive deeper into the web application and code, lets’ make sure we setup the database to store the file path and user security permissions. All systems are different but this is a minimum baseline for granting access to media resources. We need to ensure that users only have permissions to “Read” their media content as defined by the business rules


&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9LhsRLpkRC4/SYXEz5LSe5I/AAAAAAAAABc/-zU4AjO7Zqo/s1600-h/ERD+Diagram.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 214px;" src="http://1.bp.blogspot.com/_9LhsRLpkRC4/SYXEz5LSe5I/AAAAAAAAABc/-zU4AjO7Zqo/s320/ERD+Diagram.png" alt="" id="BLOGGER_PHOTO_ID_5297856932471798674" border="0" /&gt;&lt;/a&gt;

[ERD DIAGRAM GRAPHIC]

Below is the code along with a few inserts to get the database created and some demo data populated. You’ll notice that the aspnet_Membership table was created by the ASP .Net Membership process and we didn’t include the code here. Also, as a note the insert statements include a GUID that is the UserId in the aspnet_Membership table. You can use this to populate your own information.

&lt;a href="http://www.megaupload.com/?d=KFFGMN04"&gt;[SEE DOWNLOAD FOR CODE BLOCK]&lt;/a&gt;

&lt;span style="font-weight: bold;font-size:130%;" &gt;Asp .Net Web Page&lt;/span&gt;

The Login.aspx is very straight forward. Just create the page then drop the necessary login components on the page. Below is a page mockup.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9LhsRLpkRC4/SYXGAAe2BtI/AAAAAAAAAB0/iFcewQi6K6I/s1600-h/Login+Page2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 118px;" src="http://2.bp.blogspot.com/_9LhsRLpkRC4/SYXGAAe2BtI/AAAAAAAAAB0/iFcewQi6K6I/s320/Login+Page2.png" alt="" id="BLOGGER_PHOTO_ID_5297858240102926034" border="0" /&gt;&lt;/a&gt;
[LOGIN GRAPHIC]

Next we need the web page to display the JW Player and file listing.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9LhsRLpkRC4/SYXFtRRD2HI/AAAAAAAAABs/9hNmBnk9iw4/s1600-h/Login+Page.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 222px;" src="http://4.bp.blogspot.com/_9LhsRLpkRC4/SYXFtRRD2HI/AAAAAAAAABs/9hNmBnk9iw4/s320/Login+Page.png" alt="" id="BLOGGER_PHOTO_ID_5297857918190999666" border="0" /&gt;&lt;/a&gt;
[PAGE GRAPHIC]

&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Asp .Net HTML&lt;/span&gt; &lt;/span&gt;
We’ll use a Gridview for the files and labels to display the file information as we select through each item. The code of this page is below.

&lt;a href="http://www.megaupload.com/?d=KFFGMN04"&gt;[SEE DOWNLOAD FOR CODE BLOCK]&lt;/a&gt;

As we mention earlier, the {_flashvarpath} variable is set in our code-behind. We gave the format of the parameters and you will notice the {file} and {accesstoken} parameters. Both are synonymous with the config object in the Player.as. We’ll it turns out with our Player.as code entry the variable will be mapped by name to the config object. Any parameter we provide will be passed along and set.

_flashvarpath = string.Format("file={0}&amp;amp;streamer=rtmp://{1}&amp;amp;accesstoken={2}", _filepath, ConfigurationManager.AppSettings["FMSPathLocation"].ToString(), _usertoken);

Also our appSettings need to be in place for security and path information.

&lt;a href="http://www.megaupload.com/?d=KFFGMN04"&gt;[SEE DOWLOAD FOR CODE BLOCK]&lt;/a&gt;


&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Create the Flash Media Server ActionScript Component&lt;/span&gt;&lt;/span&gt;

For the Flash Media Server to accept the tokens then communicate with our web service for user authentication, Main.asc is needed. This component will sit in the application directory on the server and handle all requests for media content. This can be created using a text editor or Flash CS4 Professional. The code is commented and self-explanatory. Since this is scripted code we don’t need to compile anything, we just needed to include it in the application folder then reload the application. The application can be reloaded through the Flash Media Server Admin Console.
&lt;a href="http://www.megaupload.com/?d=KFFGMN04"&gt;
[SEE DOWLOAD FOR CODE BLOCK]&lt;/a&gt;

&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Implement a Web Service to authenticate the user and media resource&lt;/span&gt;&lt;/span&gt;

Now we’re moving towards the final pieces. The web service will accept the user token, resource file token and web service access token then authenticate the user. The information returned to the Main.asc will be parsed to allow or reject a connection. One important note, since we’re using Asp .Net Membership security we need to allow access to the service without using any credentials. To do this we set a tag in the web.config file to allow anyone to access the web service. Hence the reason for the web service access token. We only want our Flash Media Server to connect to the service. Here is the code for the web.config.

&lt;a href="http://www.megaupload.com/?d=KFFGMN04"&gt;[SEE DOWLOAD FOR CODE BLOCK]&lt;/a&gt;

&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Flash Media Server configuration&lt;/span&gt;&lt;/span&gt;

Now that our coding is completed, we only have to ensure the server is configured correctly. A copy of the JW Player should be in the SWFs directory as well as the /embed directory of the Asp .Net application.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9LhsRLpkRC4/SYXGWQz24zI/AAAAAAAAAB8/ngB1e15_KNY/s1600-h/Folder1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 162px; height: 320px;" src="http://3.bp.blogspot.com/_9LhsRLpkRC4/SYXGWQz24zI/AAAAAAAAAB8/ngB1e15_KNY/s320/Folder1.png" alt="" id="BLOGGER_PHOTO_ID_5297858622443152178" border="0" /&gt;&lt;/a&gt;

[FOLDER GRAPHIC]

The application.xml file should be located in the SecurityDemo folder.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9LhsRLpkRC4/SYXGgs24QjI/AAAAAAAAACE/Qona5YL6SEw/s1600-h/Folder2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 49px;" src="http://2.bp.blogspot.com/_9LhsRLpkRC4/SYXGgs24QjI/AAAAAAAAACE/Qona5YL6SEw/s320/Folder2.png" alt="" id="BLOGGER_PHOTO_ID_5297858801770709554" border="0" /&gt;&lt;/a&gt;

[FOLDER GRAPHIC]

The Application.xml information is below. Note three important nodes Streams, SWFVerification and SWFFolder.&lt;streams&gt;&lt;swfverification&gt;&lt;swffolder&gt;

• Streams – is local or network location of your media. If a network is used then the FMS service executables should run an account that has access to the shares. Also note the {/} in front of the path location. This is required.

• SWFVerification – enabled is set to true. This will use a checksum to validate that no other player is being used to contact your Flash Media Server.

• SWFFolder – this is the location of your swf file for the SWF verification process.

&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Summary&lt;/span&gt;&lt;/span&gt;

In summary, this is a fun product to work with and has incredible potential. We’ve created our application with web services, loaded the server-side components and authenticated our users for their media. I’ve included the references used along with a zip of all the project files. Good luck with your endeavors into the Flash Media Server.

&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;/span&gt;

ASP.NET 2.0 Membership, Roles, Forms Authentication, and Security Resources - &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/02/24/ASP.NET-2.0-Membership_2C00_-Roles_2C00_-Forms-Authentication_2C00_-and-Security-Resources-.aspx"&gt;Article&lt;/a&gt;
Scott Guthrie

ASP.NET 2.0 Security, Membership and Roles Tutorials - &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/06/19/ASP.NET-2.0-Security_2C00_-Membership-and-Roles-Tutorials.aspx"&gt;Article&lt;/a&gt;
Scott Guthrie

Examining ASP.NET 2.0's Membership, Roles, and Profile - &lt;a href="http://aspnet.4guysfromrolla.com/articles/120705-1.aspx"&gt;Article&lt;/a&gt;
Scott Mitchell

Configuring ASP.NET 2.0 Application Services to use SQL Server 2000 or SQL Server 2005 - &lt;a href="http://weblogs.asp.net/scottgu/archive/2005/08/25/423703.aspx"&gt;Article&lt;/a&gt;
Scott Guthrie

Creating ASP.NET Web Applications - &lt;a href="http://msdn.microsoft.com/en-us/library/ywdtth2f%28VS.71%29.aspx"&gt;Article&lt;/a&gt;
.NET Framework Developer Center

Creating a Simple ASP.NET Application - &lt;a href="http://www.kirupa.com/net/helloWorld.htm"&gt;Article&lt;/a&gt;
Kirupa Chinnathambi

Get Started with ASP.NET - &lt;a href="http://www.asp.net/get-started/"&gt;Reference Website&lt;/a&gt;

Manipulating Web Services with Flash Media Server - &lt;a href="http://www.adobe.com/devnet/flashmediaserver/articles/fms_web_services.html"&gt;Article&lt;/a&gt;
Robert A. Colvin

Dynamic streaming in Flash Media Server 3.5 – Part 1: ActionScript 3.0 dynamic stream API - &lt;a href="http://www.adobe.com/devnet/flashmediaserver/articles/dynstream_advanced_pt1.html"&gt;Article&lt;/a&gt;
David Hassoun

Beginner's guide to installing Flash Media Server 3.5 - Article
Tom Green

Adobe Flash Media Server – &lt;a href="http://livedocs.adobe.com/flashmediaserver/3.0/docs/help.html?content=04_adminconsole_01.html"&gt;Reference Website&lt;/a&gt;

Martijn's C# Coding Blog - &lt;a href="http://www.dijksterhuis.org/encoding-and-decoding-binary-data-using-base64-with-c/"&gt;Reference Website &lt;/a&gt;
&lt;/swffolder&gt;&lt;/swfverification&gt;&lt;/streams&gt;martijn@dijksterhuis.org&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1766233964891882687-744184869788230794?l=fixtheglitch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fixtheglitch.blogspot.com/feeds/744184869788230794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1766233964891882687&amp;postID=744184869788230794' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1766233964891882687/posts/default/744184869788230794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1766233964891882687/posts/default/744184869788230794'/><link rel='alternate' type='text/html' href='http://fixtheglitch.blogspot.com/2009/02/token-based-authentication-using-asp.html' title='Token-based authentication using Asp .Net, JW Player 4.3, Web Services and Flash Media Server 3.5'/><author><name>LowerLevelInmate</name><uri>http://www.blogger.com/profile/17270157974539121957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9LhsRLpkRC4/SYXFT3tCkZI/AAAAAAAAABk/NnXaYx4An_s/s72-c/FlashArchitecture.png' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1766233964891882687.post-2919037417118771134</id><published>2008-08-16T22:18:00.005-05:00</published><updated>2008-08-16T22:29:15.481-05:00</updated><title type='text'>To the United States Of America -- The Land of Champions</title><content type='html'>From Fixed the *glitch* to all the Olympic athletes, we salute you and honor your hard work.  You are what make your country great.  Handwork, endurance, integrity and most of all faith.  A special congratulation to Michael Phelps for become the greatest athlete in history.  Your performance was "Phelpstacular".

Hey I just thought about it... I'm trademarking "Phelpstacular(TM)"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1766233964891882687-2919037417118771134?l=fixtheglitch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fixtheglitch.blogspot.com/feeds/2919037417118771134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1766233964891882687&amp;postID=2919037417118771134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1766233964891882687/posts/default/2919037417118771134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1766233964891882687/posts/default/2919037417118771134'/><link rel='alternate' type='text/html' href='http://fixtheglitch.blogspot.com/2008/08/to-united-states-of-america-land-of.html' title='To the United States Of America -- The Land of Champions'/><author><name>LowerLevelInmate</name><uri>http://www.blogger.com/profile/17270157974539121957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1766233964891882687.post-9184339847075650350</id><published>2008-02-24T02:19:00.009-06:00</published><updated>2008-02-24T12:26:07.302-06:00</updated><title type='text'>Reusing the ASP .Net SqlDataSource for multiple web controls</title><content type='html'>Ok, I assume everyone knows how to use the SqlDataSource Control.  So I'll dispatch with such details and get down to business.  I had a sticky problem, I wanted to dump several web controls on a page without the hassle of creating multiple SqlDataSource Controls for each.  In the past, I just created my own data layer and then reuse the connection objects.  I decided it was code-reuse time and the built-in controls provided by .Net was a great opportunity.

Since I was dealing with a control, I needed to programmatically change the command text to query the database for information.  I had ten web controls to populate, each calling the same stored procedure to retrieve the data.  Each call passed a modified sql parameter for a different set of data.  So for simplicity, I'll present the steps here.

1. Include a SqlDataSource Control on your web page then configure it to use your data source information.  Once configured, remove all the parameters except the connection string information.

asp:SqlDataSource ID="sdsDataSource" runat="server" ConnectionString=""

2.  In your Page_Load event, we're going to programmatically handle the calls then pass the new query data source to each item.

3.  Below we setup our information programmatically.  We set the DataSourceMode to Datareader for performance, then we call our stored procedure.  We pass the necessary parameters then call our Select event to retrieve the data.
 
       //Property information
       sdsDataSource.DataSourceMode = SqlDataSourceMode.DataReader;
       sdsDataSource.SelectCommand = "perReadTypesByCategory";
       sdsDataSource.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
       sdsDataSource.SelectParameters.Add("intTypeId", "31");

4.  Then we set the necessary control parameters, in this case a radio button list of propery items.
       rblProperyItems.DataMember = "DefaultView";
       rblProperyItems.DataSource = sdsDataSource;
       rblProperyItems.DataTextField = "TypeDesc";
       rblProperyItems.DataValueField = "TypeId";
       rblProperyItems.DataBind();

5.  After the initial call, we need to clear out the sql parameter list, reset the parameters then make a call to refresh the data.  Note we've only changed the information we needed, namely the parameter argument from 31 to 1.  

       //Property Type information
       sdsDataSource.SelectParameters.Clear();
       sdsDataSource.SelectParameters.Add("intTypeId", "1");

       ddType.DataMember = "DefaultView";
       ddType.DataSource = sdsDataSource;
       ddType.DataTextField = "TypeDesc";
       ddType.DataValueField = "TypeId";
       ddType.DataBind();

6.  Repeat Step 5 for multiple controls.

7.  After you're done with the SqlDataSource Contorl you need to execute the Dispose method to release the resource.

That's all there is to it.

Good luck and hope this helps to all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1766233964891882687-9184339847075650350?l=fixtheglitch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fixtheglitch.blogspot.com/feeds/9184339847075650350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1766233964891882687&amp;postID=9184339847075650350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1766233964891882687/posts/default/9184339847075650350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1766233964891882687/posts/default/9184339847075650350'/><link rel='alternate' type='text/html' href='http://fixtheglitch.blogspot.com/2008/02/reusing-asp-net-sqldatasource-for.html' title='Reusing the ASP .Net SqlDataSource for multiple web controls'/><author><name>LowerLevelInmate</name><uri>http://www.blogger.com/profile/17270157974539121957</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
