Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/AccessClient.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/AccessClient.cs	(revision 7379)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/AccessClient.cs	(revision 7380)
@@ -93,5 +93,5 @@
 
     public static void Store(IAccessItem item) {
-      //TODO: never used? delete?
+      //TODO: prevent storing of lightweight users
     }
 
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/Views/LightweightUserView.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/Views/LightweightUserView.cs	(revision 7379)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/Views/LightweightUserView.cs	(revision 7380)
@@ -31,21 +31,15 @@
 
   [View("LightweightUser View")]
-  [Content(typeof(CheckedItemList<LightweightUser>), true)]
+  [Content(typeof(ReadOnlyCheckedItemList<LightweightUser>), true)]
   public partial class LightweightUserView : CheckedItemListView<LightweightUser> {
     public LightweightUserView() {
       InitializeComponent();
       this.showDetailsCheckBox.Checked = false;
+      this.itemsGroupBox.Text = "Users";
     }
 
     protected override void SetEnabledStateOfControls() {
       base.SetEnabledStateOfControls();
-      this.addButton.Enabled = false;
       this.showDetailsCheckBox.Enabled = false;
-      this.removeButton.Enabled = false;
-    }
-
-    protected override void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
-      base.itemsListView_SelectedIndexChanged(sender, e);
-      this.removeButton.Enabled = false;
     }
 
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/Views/RefreshableLightweightUserView.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/Views/RefreshableLightweightUserView.cs	(revision 7379)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/Views/RefreshableLightweightUserView.cs	(revision 7380)
@@ -34,9 +34,7 @@
     public RefreshableLightweightUserView() {
       InitializeComponent();
-
     }
 
-    //set an action like a webservice call to retrieve the users which should be marked as checked       
-    //TODO: disable refresh button if not set
+    //set an action like a webservice call to retrieve the users which should be marked as checked           
     public Func<List<Guid>> FetchSelectedUsers { get; set; }
     private List<Guid> selectedUsers;
@@ -64,12 +62,14 @@
         checkedUsers.SetItemCheckedState(idx, selectedUsers.Contains(u.Id));
       });
-      lightweightUserView.Content = checkedUsers;
+      lightweightUserView.Content = checkedUsers.AsReadOnly();
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      refreshButton.Enabled = FetchSelectedUsers != null;
     }
 
     public ICheckedItemList<LightweightUser> GetCheckedUsers() {
-      if (lightweightUserView.Content == null)
-        return null;
-      else
-        return lightweightUserView.Content;
+      return (lightweightUserView.Content == null) ? null : lightweightUserView.Content;
     }
 
Index: /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/Views/RefreshableView.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/Views/RefreshableView.cs	(revision 7379)
+++ /branches/ClientUserManagement/HeuristicLab.Clients.Access/3.3/Views/RefreshableView.cs	(revision 7380)
@@ -49,14 +49,4 @@
     }
 
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content == null) {
-        //TODO: remove?
-      } else {
-
-      }
-    }
-
     protected override void SetEnabledStateOfControls() {
       base.SetEnabledStateOfControls();
Index: /branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/AccessService.cs
===================================================================
--- /branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/AccessService.cs	(revision 7379)
+++ /branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/AccessService.cs	(revision 7380)
@@ -278,21 +278,4 @@
       DA.User accessUser = null;
 
-      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
-        var query = from u in context.UserGroupBases.OfType<DA.User>()
-                    where u.Id == userId
-                    select u;
-        if (query.Count() == 1) {
-          accessUser = query.First();
-        } else {
-          //if the user is not in the access db at it
-          DA.User user = new DA.User();
-          user.Id = userId;
-          user.FullName = "Not set";
-          context.UserGroupBases.InsertOnSubmit(user);
-          context.SubmitChanges();
-          accessUser = user;
-        }
-      }
-
       using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
         var userQuery = from u in context.aspnet_Users
@@ -311,7 +294,25 @@
       }
 
+      if (aspUser == null || aspMembership == null) {
+        using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
+          var query = from u in context.UserGroupBases.OfType<DA.User>()
+                      where u.Id == userId
+                      select u;
+          if (query.Count() == 1) {
+            accessUser = query.First();
+          } else {
+            //if the user is not in the access db add it (this makes it easy to upgrade with an existing asp.net authentication db)
+            DA.User user = new DA.User();
+            user.Id = userId;
+            user.FullName = "Not set";
+            context.UserGroupBases.InsertOnSubmit(user);
+            context.SubmitChanges();
+            accessUser = user;
+          }
+        }
+      }
+
       if (aspUser == null || aspMembership == null || accessUser == null) {
-        //TODO: error handling
-        return null;
+        throw new Exception("User with id " + userId + " not found.");
       } else {
         return Convert.ToDto(accessUser, aspUser, aspMembership);
@@ -332,24 +333,25 @@
       }
 
-      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
-        var query = from u in context.UserGroupBases.OfType<DA.User>()
-                    where u.Id == userId
-                    select u;
-        if (query.Count() == 1) {
-          accessUser = query.First();
-        } else {
-          //if the user is not in the access db at it
-          DA.User user = new DA.User();
-          user.Id = userId;
-          user.FullName = "Not set";
-          context.UserGroupBases.InsertOnSubmit(user);
-          context.SubmitChanges();
-          accessUser = user;
+      if (aspUser != null) {
+        using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
+          var query = from u in context.UserGroupBases.OfType<DA.User>()
+                      where u.Id == userId
+                      select u;
+          if (query.Count() == 1) {
+            accessUser = query.First();
+          } else {
+            //if the user is not in the access db add it (this makes it easy to upgrade with an existing asp.net authentication db)
+            DA.User user = new DA.User();
+            user.Id = userId;
+            user.FullName = "Not set";
+            context.UserGroupBases.InsertOnSubmit(user);
+            context.SubmitChanges();
+            accessUser = user;
+          }
         }
       }
 
       if (aspUser == null || accessUser == null) {
-        //TODO: error handling
-        return null;
+        throw new Exception("User with id " + userId + " not found.");
       } else {
         return Convert.ToDto(accessUser, aspUser);
@@ -365,10 +367,9 @@
       List<Guid> accessUserGuids = null;
 
-      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
-        var query = from u in context.UserGroupBases.OfType<DA.User>()
-                    select u.Id;
+      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
+        var query = from u in context.aspnet_Users
+                    select u.UserId;
         accessUserGuids = query.ToList();
       }
-
       return accessUserGuids.Select(x => BuildLightweightUserDto(x));
     }
@@ -377,7 +378,7 @@
       List<Guid> accessUserGuids = null;
 
-      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
-        var query = from u in context.UserGroupBases.OfType<DA.User>()
-                    select u.Id;
+      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
+        var query = from u in context.aspnet_Users
+                    select u.UserId;
         accessUserGuids = query.ToList();
       }
