Tuesday, March 06, 2007

There's been a good deal of interest in my last post, How to Use Windows CardSpace with ASP.NET Forms Authentication. I recently went back and reviwed the screencast and noticed that I mistakenly stored the private personal identifier rather than the unique identifier.

If you're using my code as an example, you need to make some minor tweaks:

  1. In Link.aspx.cs, replace the token.Claims property usage with token.UniqueID on line 32
  2. In Login.aspx.cs, replace the token.Claims property usage with token.UniqueID on line 28

Technically you can leave the database changes alone and still use the field named PPID, but it may be desirable to refactor the database and the stored procedures names to reflect the storage of a unique identifier rather than the private personal identifier.

In short, you want to rely upon the unique identifier rather than the private personal identifier for a number of security reasons. Vittorio Bertocci does a great job of explaining the details about why you want to use the UniqueID rather than the PPID in his post UniqueID and PPID.

Tuesday, March 06, 2007 12:05:14 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  | 
 Tuesday, January 09, 2007

You give me 18 minutes, I'll give you Windows CardSpace integration with ASP.NET forms authentication. You can watch my How to use Windows CardSpace with ASP.NET Forms Authentication screencast directly from Microsoft's streaming media server or download and watch the video later.

[EDIT: The download link was broken and is now fixed as of 13:23 CST]

In this screencast, I take a simple ASP.NET 2.0 application that has been secured with forms authentication using the AspNetSqlMembershipProvider, and extend it to support information cards with Windows CardSpace.

The Challenge

So, how do you take an existing ASP.NET 2.0 application that is using an ASP.NET membership provider and extend it such that users can authenticate with either their existing username and password or their information card? You build upon the awesome out-of-the-box experience that ASP.NET 2.0 provides with the AspNetSqlMembershipProvider!

The AspNetSqlMembershipProvider

Ultimately, the AspNetSqlMembershipProvider uses your username to log you into a site using the FormsAuthentication class. Since you typically provide your username when you log into a forms authentication-secured site, gaining access to the username is pretty straight forward.

The Solution

In the case of information cards, however, a username is not provided. In its place, a private personal identifier, or PPID, associated with one's information card is the unique piece of identifying information.

It is a relatively simple exercise, then, to extend the ASPNETDB used by AspNetSqlMembershipProvider to include a new table that provides a mapping between a username and a private personal identifier.

My screencast walks you through the creation of an ASPX page that enables an authenticated user to link their information card with their account, and then extends the login page to use an information card as an alternative authentication mechanism. I hope that once you've watched the screencast, you'll be prepared to start extending your own ASP.NET 2.0 applications with information cards as well!

More Information

If you are new to ASP.NET, there is a great "How do I?" series for all things ASP.NET at http://www.asp.net/learn/videos. In particular, How do I: Secure my Site using Membership and Roles? provides you with the background you'll need to secure your site using the AspNetSqlMembershipProvider before attempting to integrate information cards with Windows CardSpace.

This posting is provided "AS IS" with no warranties, and confers no rights.

Tuesday, January 09, 2007 12:21:48 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  | 
 Saturday, December 30, 2006

Unfortunately, the hard drive hosting the virtual instance of casadehambone.com completely failed. It will take another day or so to get everything back up and running again.

[Update: Saturday, December 30, 2006]

Windows Live Writer has saved my bacon! I was able to repost everything that was saved by Windows Live Writer and recover > 90% of the last four months of content on casadehambone.com. I also found some cached entries on Google that will let me recover the few posts I wrote outside of Windows Live Writer.

Through a bit of DasBlog hacking on the content files, I was able to get everything back into to the month in which it was written. December, November and September are actually updated with matching dates and times from their original entries. Presently, all of Octobers posts are dated 2006-10-01 but that will change when I have a bit more time to walk through the 50 or so posts and hand-edit their timestamps.

I'm also blessed in that I have all of the XML files created from when I migrated from .TEXT to DasBlog, recovering history dating back to my first ever blog post, March 2, 2004!!

Saturday, December 30, 2006 12:28:39 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 
 Monday, December 18, 2006

Free Your Inner DJ I woke up one day last week and decided to join the social. That's right - the marketing from the billboard I see each and every morning, combined with the desire to see first-hand how we are competing with the iPod, forced me to get a Zune.

Let me say that Zune Marketplace combined with a Zune Pass (i.e., all-you-can-eat music for $14.99 each month) is simply awesome. And I hate to admit it, but I love the concept of a music subscription service so much that if Apple were to come out with a subscription model for iTunes, I would likely subscribe right now. And I would do so despite considering iTunes to be the devil - after owning two iPods for well over two years, I have bought all of two albums from iTunes (both of which were done so I could see the process.)

So for as much as I love the Zune Pass and the subscription model, there are a few key items lacking in my Zune experience that I desperately want: support for podcasting, audiobooks and native integration with car stereos.

Support for Podcasting

It's no surprise at this point. The Zune sucks at podcasting. Sure, it can play back podcasts as they are nothing more than MP3s, but the Zune software has no discovery or download mechanism for podcasts. Once you manage to get a podcast onto Zune, it doesn't actually know that these are podcasts. It thinks they are MP3s just like any other MP3. What I want is for the Zune to treat podcasts as spoken word and perform two very important tasks:

  1. Bookmark the audio track. When I navigate away from a podcast Zune needs remember where I was and return me to that exact same spot. Do not force me to fast forward 45 minutes to get back to where I was listening in .NET Rocks.
  2. Provide the ability to speed up or slow down. Yes, most of the time I listen to podcasts at normal speed, but there are times where I want to speed things up.

You would think that in joining the social, the Zune would be more open to the new social media. Maybe it's just angry for not being invited to the party earlier.

It's a sad statement when your competitors software is a better client for your premier device, too. For as much as I hate the way iTunes organizes and presents my music library, it does a rockin' good job of organizing, finding and delivering podcasts - which Zune Player will gladly sync to Zune without even asking.

Support for Audiobooks

This one is closely tied to support for podcasting, above, and both requirements apply here as well. Bookmarking with audiobooks is vital. Given that an audiobook can sometimes run in excess of 10 hours, you do not want to find yourself in a situation of performing a binary search of your audio to figure out where you left out.

So what makes support for audiobooks different than support for podcasts? Zune does not support Audible (or is it Audible does not support Zune? In either case, it doesn't work.) No Audible, no audiobooks. Its surprising, given that most of the other WMA-based players out there are indeed compatible with Audible.

I drive. A lot. Any time I'm going to be on the road for more than 30 minutes, I like to fire up an audiobook or a podcast and gain some enrichment. I have an Audible Listener subscription (I told you I was big on subscription content) and burn through my two credits each month (I'm currently listening to Babylon Rising by Tim LaHaye, author of the very popular Left Behind series.)

So Zune doesn't cut it for me in this case.

Support for Car Stereos

My BMW 325i benefits from the whole iPod Your BMW experience. And with the only drawback of that experience being that you cannot fast forward a track, it is an awesome experience. The iPod acts as the car's 6 disc CD changer, allowing me to drive the iPod from the steering wheel and stereo controls.

Image: Zune™ Car Pack

What is Zune's answer to this? Zune Car Pack with FM Transmitter. An accessory that, in a word, stinks. Dave had actually warned me about this one, but I thought how bad could it really be? The truth is, really bad. It has a feature that automatically picks the "best" FM station on which to broadcast. It selected 106.9 and upon tuning my car's stereo to that station heard nothing more than a ton of static. I tried the lower stations (87-89) with better luck but the audio quality was horrible and littered with interference. It was so bad that I broke out the CDs I ripped of the audio book I'm currently listening to (I would have normally listened to them on my iPod, but my in-dash dock connector is having issues so the iPod isn't working either ... hence this entire trek into Zune territory.) I'm likely challenged in that most of the FM band here in Chicago is in use, but the Zune FM transmitter failed to deliver a workable experience. Needless to say, this accessory is going back to the store when I get back to Chicago tomorrow.

Zune needs one of two things. Either a direct competitor to the iPod Your BMW effort or an adapter that makes Zune compatible with iPod accessories. i.e., a bridge that takes the iPod dock on one end and connects to Zune on the other, and is able to translate commands and audio between Zune and iPod dock connectors. That would be an extremely valuable device.

Where Does Zune Work for Me?

Mostly on the treadmill. I can download a ton of new music and gain exposure to stuff I normally would not try via Zune Marketplace with the Zune Pass.

When I think about my iPod, it really does live in the glove box of my car. It has become, for all intents and purposes, my CD changer. Yes, I take it out and dock it to load new music on it. If I'm into a really good book or podcast, I'll bring it to bed with me. But it lives out 95% of its existence in my glove box serving up podcasts and audiobooks.

Zune is also a cool way to show off videos and pictures of my kids - something that lasts for all of about 10 seconds because no one really wants to watch videos of other people's kids. However, I cannot under estimate the value of video. When we were roaming around on vacation with a Creative Zen Portable Media Center, we were able to keep my kids entertained with content from our Media Center PC. Maybe the next time we travel Zune can accompany us and entertain the kids.

A Word About Zune Software

Why on earth does Zune's software not minimize to the tray? For that matter, I find myself using Zune software to browse Zune Marketplace and sync my Zune, but then I fire up Windows Media Player to listen to all of my music when I'm at my desktop. I shouldn't have to do this. The Zune software should be a plug in into Windows Media Player just like URGE. Oh sure, I understand the desire for us [Microsoft] to brand Zune similar to the way iPod and iTunes are branded ... but do we really need to create as poor an experience as iTunes, too? Bring back my integration, please.

In Summary

Zune has a lot of potential. In fact, should my three items be addressed I will hold a public destruction event for my iPods and invite everyone to come and participate. However, until then my Zune will be a niche gadget. And while I mentioned that should iTunes provide a subscription service that I would use in a heartbeat, I will drop the iPod and iTunes as soon as I can replace them with Zune for my usage scenarios.

Technorati tags: ,
Monday, December 18, 2006 4:21:19 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  | 
 Sunday, December 17, 2006
Amazon.com

Amazon does a great job with the mobile browsing and buying experience.

Saturday I was sitting at my daughter's dance class and remembered a DVD series my wife wanted for Christmas. I could think of no better way to spend the idle time than knocking out some much needed Christmas shopping. Armed with my Samsung Blackjack, I fired up Internet Explorer and browsed over to www.amazon.com.

First thing to note is that amazon.com renders specifically for the mobile device, making it cake to browse for products without the annoying up-and-down/left-to-right scrolling that pains most visitors to web sites that don't consider the mobile browsing experience.

Second thing to notice is that amazon.com does a great job of using "1-Click" ordering specifically in the mobile version. Why? Because it is hard to enter billing and shipping information on a mobile device. Since I had visited amazon.com before on this device, they knew who I was and could leverage my 1-Click settings. And had I purchased multiple items, I could use 1-Click for them all and Amazon would batch up all the purchases into a single order. That's nice.

So there I was, sitting at my daughter's dance class and in less than two minutes had found the DVD series my wife wanted, had it purchased, gift wrapped and shipped to Casa de Hambone in time for Christmas. I got back to watching the kids tap and smiled knowing that I had just done some Christmas shopping while looking around at the other father's who clearly were sweating what they'd be getting their wives for Christmas and wondering when they'd find the time to get it.

Grab your favorite mobile device and go browse www.amazon.com. And honey, if you're reading this, act surprised on Christmas.

Technorati tags: ,
Sunday, December 17, 2006 10:51:43 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 

In order to further expand the social and success of Zune, Zune needs every way possible to not only share music itself but to enable owners to discover as much new music as possible. Why? Because that drives demand for Zune Marketplace which, in turn, drives revenue and brand loyalty.

Like most Zune new users, the first thing I tried was to share music from my Zune to a friend's Zune, only to discover that it failed miserably. The music I was trying to share was from Zune Marketplace via a Zune Pass. I've come to learn that it is hit or miss as to which tracks acquired via a Zune Pass may be shared in the social. However, what would rock would for me to freely share my playlists with friends, along with any sharable tracks over WiFi and over Zune Marketplace.

When I had a Yahoo! Music Unlimited subscription I had the ability for my friends to see my music library and my playlists. This was an incredibly powerful feature. If they too were equipped with a subscription, they could immediately start listening to music that I liked. It was a great way to find music if you know of others with similar tastes.

Zune needs the same thing. Not only should I be able to share the music itself, but sharing the playlists provides a way of saying, "Here's a variety of stuff I like that you may like too." Include with that playlist a set of "previews" of the tracks contained within the playlist. Just enough of a teaser for someone in the social to decide if they like it too and then use the playlist as a shopping list on Zune Marketplace.

Zune also needs a way to link to music on Zune Marketplace. Why? I'm currently streaming Rainbow in the Dark by Dio from The Very Best of Dio via Zune Marketplace over Milwaukee's free city-wide WiFi connection. I'd love to link you to it but I can't. Rock on.

Technorati tags: , ,
Sunday, December 17, 2006 10:36:03 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 

What a pleasant surprise tonight! I've read about major cities in the U.S. rolling out city-wide WiFi networks (in fact, my brother who runs the budget for Orange County recently asked me about doing this) but have never actually had an opportunity to use one. That is, never had an opportunity to use one until tonight.

As I checked into the Milwaukee Hyatt I inquired as to the availability of Internet access from the hotel. I was politely informed that wireless access is available, is provided by a separate company and is billed at $9.95 per 24 hours. That itself is a tad surprising in this day when many hotels are including Internet access in the price of the room. Still, I'm glad that I'd have some quite time to catch up on some research for an upcoming project. Once I reached my room and unpacked my laptop, I was greeted with three wireless networks from which to choose.

Now is probably a good time to bring up WiFi security. If you look at all three of those networks, each has the Windows Vista warning shield icon on them. I have no way of looking at the list of networks and knowing which one is "safe" to use. Which one do you choose? Chances are quite good that Hyatt is the network I'm interested in (given that I'm staying at the Milwaukee Hyatt.) But without a call to the front desk to specifically ask which network the Hyatt recommends I use, its an educated crap shoot. Pick the wrong WiFi network and you could end up on a network with bad intentions.

The network that got my attention is MILWIFI and connecting to it immediately yielded an IP address. Upon opening Internet Explorer I was greeted with a Terms of Customer Use Agreement. The second line of the agreement states, "All Customers must provide accurate and complete billing information, as requested for registration or billing." I really wondered what I had stumbled on and expected to be greeted with a registration page when I clicked I AGREE. Instead, I was greeted with a welcome page to the City of Milwaukee's WiFi network!!

Imagine that. Here I am 90 minutes north of one of the largest cities in the country (Chicago) where I find their technology infrastructure to be deployed than in the Second City. So I sit here, from the comfort of my hotel room, blogging and doing some research compliments of the City of Milwaukee.

Thank you, Milwaukee!

Technorati tags:
Sunday, December 17, 2006 8:56:25 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, December 12, 2006

If you build it, they will come. Head on over to Perpetual Motion and read about the their identity selector for Firefox.

Technorati tags: , ,
Tuesday, December 12, 2006 6:39:33 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 

While on vacation for Thanksgiving, I accidentally pulled my iPod into the bath. It dried out and everything is operable except for the backlight. I purchased it at Best Buy with a service plan and figured it was time to find out how good their service plan really is - knowing full well the problem is completely my fault and not expecting anything should anyone find out that my iPod got to relax in the bath.

I'm not one for maintaining paperwork. While I know that my receipt and service plan agreement are safely tucked away in the file cabinet from hell, I wasn't in the mood to go digging. True to their word, Best Buy was able to pull up my purchase history and service plans just from my phone number. And in no time flat. Plus points for that.

While I thought had purchased a replacement plan, turns out I had actually purchased a service plan. I seem to recall that when I bought the iPod, the service plan was sold to me as, "The batteries in these die out. Get the service plan and the device gets replaced." In reality, the device gets sent back to Apple for repair and could be replaced at Apple's discretion. Minus points for that. The customer service rep kindly directed me to the Geek Squad.

So send in my iPod I did. Armed with my service contract number provided by the customer service rep, a Geek Squad representative took down my vital information, took my iPod and handed me a receipt. I could expect to see it again in about two weeks.

My good friend Dan informed me that most electronic devices have a little piece of white paper in them that turns red when exposed to liquid - starting at a light pink for little exposure all the way up to a crimson blood red for the most grievous of mistakes: allowing your electronic device to become completely submerged in water. Apparently we have a joint friend who can demonstrate this little "feature" across a number of Audiovox SMT5600 smartphones he has owned. I really don't what to know what kind of liquid is responsible for all of his "issues."

Today I got a call back from Best Buy, who was passing along the word from Apple that the device was subjected to "liquid damage" and is being returned "as is." About what I expected, but still nice to know that my iPod ran the gauntlet and Best Buy's claim of being able to always locate my service information is indeed true. Unfortunately, knowing that it was subjected to liquid damage I'm pretty certain the service contract is useless at this point.

Technorati tags: , ,
Tuesday, December 12, 2006 4:36:36 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, November 29, 2006

First, go watch this video at http://www.youtube.com/watch?v=-SZzAT-S5DQ. Trust me. You'll be entertained and educated. It makes me laugh to see the number of comments that claim this is a "fake." What makes me laugh even more is to know that we actually released something like this.

Then, go visit http://www.powertogether.com and find out how you can get your own free, fully licensed versions of Windows Vista Business and Office Professional 2007.

In short, you need to complete three webcasts or virtual labs in each of the series to get your free copies. What better way to get your hands on the hottest software releases for the desktop this Christmas than to actually participate in free training?

Technorati tags: , ,
Wednesday, November 29, 2006 3:51:58 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 

During the early integration of information cards and Windows CardSpace into casadehambone.com, I required validation of your information card by e-mail address. I'm now removing all registered users from the database.

There are a couple of reasons as to why I'm doing this.

First, with the release of .NET Framework 3.0 and Windows CardSpace, a breaking change to the information card schema was introduced that forces you to create new information cards. With the creation of a new information card comes a new personal identifier, and it is your personal identifier that I stored in association with your account.

Since the work I've done to date on DasBlog does not support associating a new information card with an existing account, it does not make sense to hang on to the old personal identifier at all.

Second, I settled on an implementation that does not require validation in order to sign in to casadehambone.com. Rather, your information card is used to simply present your identity which I gladly accept. You're free to lie about your identity. Primarily your identity is used to form-fill comment pages. You can, in fact, not authenticate and still leave a comment. I'm not picky.

I do plan on some more work for DasBlog shortly that will require you to provide your identity, but again I will not validate your identity. It is simply an added barrier to avoid automated comment spam.

Wednesday, November 29, 2006 2:53:21 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, November 21, 2006

The fine folks over at TechSmith have made available a beta version of Camtasia Studio 4.0.1 that works on the RTM version of Windows Vista.

I've now successfully recorded audio and video simultaneously to CAMREC and opened the recording in Camtasia Studio for editing.

This makes things a ton easier and I can get to finishing up some projects that I was delaying due to not having the energy to jump through hoops. Now, no hoop jumping.

For reference, here are some of my posts that documented to get journey where I am today:

Recording screencasts within Virtual PC 2007 using Camtasia Studio

Grrrr. Camtasia Recorder crashing on 64-bit Windows Vista RC2

Success with Camtasia Studio 4 on 64-bit Windows Vista RC1

Doh! Still need a Windows XP machine for my Camtasia stuff

Technorati tags: ,
Tuesday, November 21, 2006 7:49:33 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |