Index: /branches/UserManagement/HeuristicLab.Authentication.sln
===================================================================
--- /branches/UserManagement/HeuristicLab.Authentication.sln	(revision 4788)
+++ /branches/UserManagement/HeuristicLab.Authentication.sln	(revision 4789)
@@ -5,6 +5,4 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Authentication.DataTransfer", "HeuristicLab.Services.Authentication.DataTransfer\HeuristicLab.Services.Authentication.DataTransfer.csproj", "{AC44BDF4-AED7-4445-9A99-57B3237DBE88}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Authentication", "HeuristicLab.Services.Authentication\HeuristicLab.Services.Authentication.csproj", "{FF763830-EE9B-4FF7-9A55-4E2552E20C9A}"
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{FD54DDCC-971C-4CB5-AD4B-B523388D6F01}"
@@ -15,7 +13,9 @@
 	EndProjectSection
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Authentication.TestClient", "HeuristicLab.Services.Authentication.TestClient\HeuristicLab.Services.Authentication.TestClient.csproj", "{C31A4169-0BD0-4969-A85B-49AA3B679047}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Authentication.TestClient2", "HeuristicLab.Services.Authentication.TestClient2\HeuristicLab.Services.Authentication.TestClient2.csproj", "{EB40C828-D545-4DFE-9CE6-108FB03C6912}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Authentication.TestClient2", "HeuristicLab.Services.Authentication.TestClient2\HeuristicLab.Services.Authentication.TestClient2.csproj", "{EB40C828-D545-4DFE-9CE6-108FB03C6912}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Authentication.ServiceClient", "HeuristicLab.Services.Authentication.ServiceClients\HeuristicLab.Services.Authentication.ServiceClient.csproj", "{8E698904-936D-4C7A-AB0D-6225778D2968}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Authentication", "HeuristicLab.Services.Authentication\HeuristicLab.Services.Authentication.csproj", "{9FD3F26D-B051-4F4C-9C66-4A361EE357AD}"
 EndProject
 Global
@@ -52,24 +52,4 @@
 		{AC44BDF4-AED7-4445-9A99-57B3237DBE88}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{AC44BDF4-AED7-4445-9A99-57B3237DBE88}.Release|x86.ActiveCfg = Release|Any CPU
-		{FF763830-EE9B-4FF7-9A55-4E2552E20C9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{FF763830-EE9B-4FF7-9A55-4E2552E20C9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{FF763830-EE9B-4FF7-9A55-4E2552E20C9A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{FF763830-EE9B-4FF7-9A55-4E2552E20C9A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{FF763830-EE9B-4FF7-9A55-4E2552E20C9A}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{FF763830-EE9B-4FF7-9A55-4E2552E20C9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{FF763830-EE9B-4FF7-9A55-4E2552E20C9A}.Release|Any CPU.Build.0 = Release|Any CPU
-		{FF763830-EE9B-4FF7-9A55-4E2552E20C9A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{FF763830-EE9B-4FF7-9A55-4E2552E20C9A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{FF763830-EE9B-4FF7-9A55-4E2552E20C9A}.Release|x86.ActiveCfg = Release|Any CPU
-		{C31A4169-0BD0-4969-A85B-49AA3B679047}.Debug|Any CPU.ActiveCfg = Debug|x86
-		{C31A4169-0BD0-4969-A85B-49AA3B679047}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
-		{C31A4169-0BD0-4969-A85B-49AA3B679047}.Debug|Mixed Platforms.Build.0 = Debug|x86
-		{C31A4169-0BD0-4969-A85B-49AA3B679047}.Debug|x86.ActiveCfg = Debug|x86
-		{C31A4169-0BD0-4969-A85B-49AA3B679047}.Debug|x86.Build.0 = Debug|x86
-		{C31A4169-0BD0-4969-A85B-49AA3B679047}.Release|Any CPU.ActiveCfg = Release|x86
-		{C31A4169-0BD0-4969-A85B-49AA3B679047}.Release|Mixed Platforms.ActiveCfg = Release|x86
-		{C31A4169-0BD0-4969-A85B-49AA3B679047}.Release|Mixed Platforms.Build.0 = Release|x86
-		{C31A4169-0BD0-4969-A85B-49AA3B679047}.Release|x86.ActiveCfg = Release|x86
-		{C31A4169-0BD0-4969-A85B-49AA3B679047}.Release|x86.Build.0 = Release|x86
 		{EB40C828-D545-4DFE-9CE6-108FB03C6912}.Debug|Any CPU.ActiveCfg = Debug|x86
 		{EB40C828-D545-4DFE-9CE6-108FB03C6912}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
@@ -82,4 +62,24 @@
 		{EB40C828-D545-4DFE-9CE6-108FB03C6912}.Release|x86.ActiveCfg = Release|x86
 		{EB40C828-D545-4DFE-9CE6-108FB03C6912}.Release|x86.Build.0 = Release|x86
+		{8E698904-936D-4C7A-AB0D-6225778D2968}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8E698904-936D-4C7A-AB0D-6225778D2968}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8E698904-936D-4C7A-AB0D-6225778D2968}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{8E698904-936D-4C7A-AB0D-6225778D2968}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{8E698904-936D-4C7A-AB0D-6225778D2968}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{8E698904-936D-4C7A-AB0D-6225778D2968}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8E698904-936D-4C7A-AB0D-6225778D2968}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8E698904-936D-4C7A-AB0D-6225778D2968}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{8E698904-936D-4C7A-AB0D-6225778D2968}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{8E698904-936D-4C7A-AB0D-6225778D2968}.Release|x86.ActiveCfg = Release|Any CPU
+		{9FD3F26D-B051-4F4C-9C66-4A361EE357AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9FD3F26D-B051-4F4C-9C66-4A361EE357AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9FD3F26D-B051-4F4C-9C66-4A361EE357AD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{9FD3F26D-B051-4F4C-9C66-4A361EE357AD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{9FD3F26D-B051-4F4C-9C66-4A361EE357AD}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{9FD3F26D-B051-4F4C-9C66-4A361EE357AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9FD3F26D-B051-4F4C-9C66-4A361EE357AD}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9FD3F26D-B051-4F4C-9C66-4A361EE357AD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{9FD3F26D-B051-4F4C-9C66-4A361EE357AD}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{9FD3F26D-B051-4F4C-9C66-4A361EE357AD}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.DataAccess/HeuristicLab.Services.Authentication.DataAccess.csproj
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.DataAccess/HeuristicLab.Services.Authentication.DataAccess.csproj	(revision 4788)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.DataAccess/HeuristicLab.Services.Authentication.DataAccess.csproj	(revision 4789)
@@ -52,7 +52,4 @@
       <DependentUpon>Settings.settings</DependentUpon>
     </Compile>
-    <Compile Include="UserManagement.cs">
-      <DependentUpon>UserManagement.dbml</DependentUpon>
-    </Compile>
     <Compile Include="UserManagement.designer.cs">
       <AutoGen>True</AutoGen>
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/Application.cs
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/Application.cs	(revision 4788)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/Application.cs	(revision 4789)
@@ -9,6 +9,6 @@
   [DataContract]
   public class Application : NamedAuthItem {
-    //[DataMember]
-    //public string LoweredApplicationName { get; set; }
+    [DataMember]
+    public string LoweredApplicationName { get; set; }
     [DataMember]
     public string Description { get; set; }
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/AuthItem.cs
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/AuthItem.cs	(revision 4788)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/AuthItem.cs	(revision 4789)
@@ -5,4 +5,6 @@
   [DataContract]
   public abstract class AuthItem{
+
+
     [DataMember]
     public System.Guid Id { get; set; }
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/NamedAuthItem.cs
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/NamedAuthItem.cs	(revision 4788)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/NamedAuthItem.cs	(revision 4789)
@@ -3,5 +3,6 @@
 namespace HeuristicLab.Services.Authentication.DataTransfer {
   [DataContract]
-  public abstract class NamedAuthItem : AuthItem {
+    public abstract class NamedAuthItem : AuthItem
+    {
     [DataMember]
     public string Name { get; set; }
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/Role.cs
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/Role.cs	(revision 4788)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/Role.cs	(revision 4789)
@@ -9,10 +9,17 @@
   [DataContract]
   public class Role : NamedAuthItem {
+
+      public Role()
+      {
+          Name = "";
+          LoweredRoleName = "";
+      }
+
     [DataMember]
     public Guid ApplicationId { get; set; }
-    //[DataMember]
-    //public string LoweredRoleName { get; set; }
+   [DataMember]
+    public string LoweredRoleName { get; set; }
     [DataMember]
-    public string Desciption { get; set; }
+    public string Description { get; set; }
   }
     //[DataContract]
@@ -25,6 +32,6 @@
     //    [DataMember]
     //    public string RoleName { get; set; }
-    //    [DataMember]
-    //    public string LoweredRoleName { get; set; }
+        //[DataMember]
+        //public string LoweredRoleName { get; set; }
     //    [DataMember]
     //    public string Description { get; set; }
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/User.cs
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/User.cs	(revision 4788)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.DataTransfer/User.cs	(revision 4789)
@@ -9,4 +9,17 @@
   [DataContract]
   public class User : NamedAuthItem {
+
+      public User()
+      {
+          Password = "";
+          PasswordSalt = "";
+          Name = "";
+          CreateDate = DateTime.Now;
+          LastActivityDate = DateTime.Now;
+          LastLoginDate = DateTime.Now;
+          LastLockoutDate = DateTime.Now;
+          LastPasswordChangeDate = DateTime.Now;
+      }
+
     // Member of Membership
     [DataMember]
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.ServiceClients/HeuristicLab.Services.Authentication.ServiceClient.csproj
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.ServiceClients/HeuristicLab.Services.Authentication.ServiceClient.csproj	(revision 4789)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.ServiceClients/HeuristicLab.Services.Authentication.ServiceClient.csproj	(revision 4789)
@@ -0,0 +1,56 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{8E698904-936D-4C7A-AB0D-6225778D2968}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Services.Authentication.ServiceClients</RootNamespace>
+    <AssemblyName>HeuristicLab.Services.Authentication.ServiceClients</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="ServiceClients\GenerateServiceClients.cmd" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.ServiceClients/Properties/AssemblyInfo.cs
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.ServiceClients/Properties/AssemblyInfo.cs	(revision 4789)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.ServiceClients/Properties/AssemblyInfo.cs	(revision 4789)
@@ -0,0 +1,36 @@
+﻿using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Services.Authentication.ServiceClients")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab.Services.Authentication.ServiceClients")]
+[assembly: AssemblyCopyright("Copyright ©  2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("194cdf46-c076-4cc0-b643-d68a7c4d4c75")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.ServiceClients/ServiceClients/GenerateServiceClients.cmd
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.ServiceClients/ServiceClients/GenerateServiceClients.cmd	(revision 4789)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.ServiceClients/ServiceClients/GenerateServiceClients.cmd	(revision 4789)
@@ -0,0 +1,35 @@
+﻿echo off
+
+echo.
+echo *******************************************************************************************
+echo Generating OKBService client
+echo.
+
+svcutil.exe ^
+http://localhost:8732/Design_Time_Addresses/OKB-3.3/AuthenticationService/mex ^
+/out:AuthenticationServiceClient ^
+/namespace:*,HeuristicLab.Services.Authentication.ServiceClient ^
+/targetClientVersion:Version35 ^
+/enableDataBinding ^
+/config:..\app.config
+
+echo.
+echo ---------------------------------------------------------------------------------------
+echo !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!!
+echo.
+echo Following modifications have to be done manually in generated data contracts:
+echo  * Remove method "protected void RaisePropertyChanged(string propertyName)" in OKBItem
+echo.
+echo !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!!
+echo ---------------------------------------------------------------------------------------
+echo.
+echo Generation of OKBService client finished.
+echo *******************************************************************************************
+echo.
+echo.
+echo *******************************************************************************************
+echo Generating AuthenticationService client
+echo.
+
+
+pause
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient/HeuristicLab.Services.Authentication.TestClient.csproj
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient/HeuristicLab.Services.Authentication.TestClient.csproj	(revision 4788)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient/HeuristicLab.Services.Authentication.TestClient.csproj	(revision 4789)
@@ -64,8 +64,4 @@
       <Name>HeuristicLab.Services.Authentication.DataTransfer</Name>
     </ProjectReference>
-    <ProjectReference Include="..\HeuristicLab.Services.Authentication\HeuristicLab.Services.Authentication.csproj">
-      <Project>{FF763830-EE9B-4FF7-9A55-4E2552E20C9A}</Project>
-      <Name>HeuristicLab.Services.Authentication</Name>
-    </ProjectReference>
   </ItemGroup>
   <ItemGroup>
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient/Properties/DataSources/HeuristicLab.Services.Authentication.DataTransfer.Application.datasource
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient/Properties/DataSources/HeuristicLab.Services.Authentication.DataTransfer.Application.datasource	(revision 4789)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient/Properties/DataSources/HeuristicLab.Services.Authentication.DataTransfer.Application.datasource	(revision 4789)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="Application" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.Services.Authentication.DataTransfer.Application, HeuristicLab.Services.Authentication.DataTransfer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource>
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient/UserManagement.Designer.cs
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient/UserManagement.Designer.cs	(revision 4788)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient/UserManagement.Designer.cs	(revision 4789)
@@ -49,5 +49,5 @@
             this.userNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.isAnonymousDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn();
-            this.Membership = new System.Windows.Forms.DataGridViewTextBoxColumn();
+           
             this.bsUsers = new System.Windows.Forms.BindingSource(this.components);
             this.tcUser = new System.Windows.Forms.TabControl();
@@ -290,6 +290,5 @@
             this.dgvUsers.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
             this.userNameDataGridViewTextBoxColumn,
-            this.isAnonymousDataGridViewCheckBoxColumn,
-            this.Membership});
+            this.isAnonymousDataGridViewCheckBoxColumn});
             this.dgvUsers.DataSource = this.bsUsers;
             this.dgvUsers.Location = new System.Drawing.Point(3, 45);
@@ -311,12 +310,5 @@
             this.isAnonymousDataGridViewCheckBoxColumn.HeaderText = "IsAnonymous";
             this.isAnonymousDataGridViewCheckBoxColumn.Name = "isAnonymousDataGridViewCheckBoxColumn";
-            // 
-            // Membership
-            // 
-            this.Membership.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
-            this.Membership.DataPropertyName = "Membership.Email";
-            this.Membership.HeaderText = "EMail";
-            this.Membership.Name = "Membership";
-            this.Membership.Width = 58;
+          
             // 
             // bsUsers
@@ -356,12 +348,5 @@
             this.tabPage3.Text = "Detail";
             this.tabPage3.UseVisualStyleBackColor = true;
-            // 
-            // passwordSaltTextBox
-            // 
-            this.passwordSaltTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsUser, "Membership.PasswordSalt", true));
-            this.passwordSaltTextBox.Location = new System.Drawing.Point(134, 127);
-            this.passwordSaltTextBox.Name = "passwordSaltTextBox";
-            this.passwordSaltTextBox.Size = new System.Drawing.Size(145, 20);
-            this.passwordSaltTextBox.TabIndex = 17;
+           
             // 
             // bsUser
@@ -369,11 +354,5 @@
             this.bsUser.DataSource = typeof(HeuristicLab.Services.Authentication.DataTransfer.User);
             // 
-            // passwordQuestionTextBox
-            // 
-            this.passwordQuestionTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsUser, "PasswordQuestion", true));
-            this.passwordQuestionTextBox.Location = new System.Drawing.Point(134, 73);
-            this.passwordQuestionTextBox.Name = "passwordQuestionTextBox";
-            this.passwordQuestionTextBox.Size = new System.Drawing.Size(145, 20);
-            this.passwordQuestionTextBox.TabIndex = 16;
+
             // 
             // passwordTextBox
@@ -743,5 +722,5 @@
         private System.Windows.Forms.DataGridViewTextBoxColumn userNameDataGridViewTextBoxColumn;
         private System.Windows.Forms.DataGridViewCheckBoxColumn isAnonymousDataGridViewCheckBoxColumn;
-        private System.Windows.Forms.DataGridViewTextBoxColumn Membership;
+
     }
 }
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient/UserManagement.cs
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient/UserManagement.cs	(revision 4788)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient/UserManagement.cs	(revision 4789)
@@ -31,5 +31,5 @@
             {
 
-               
+
                 RefreshApplicationlist();
             }
@@ -61,8 +61,9 @@
         {
             // show detail
-            if(dgvUsers.SelectedRows.Count == 1){
+            if (dgvUsers.SelectedRows.Count == 1)
+            {
                 User user = (User)dgvUsers.SelectedRows[0].DataBoundItem;
                 bsUser.DataSource = user;
-                bsUserRoles.DataSource = service.GetRolesForUser(user.UserId);
+                bsUserRoles.DataSource = service.GetRolesForUser(user.Id);
                 tcUser.Enabled = false;
             }
@@ -73,8 +74,8 @@
             if (dgvRoles.SelectedRows.Count == 1)
             {
-                Role role = (Role) dgvRoles.SelectedRows[0].DataBoundItem;
+                Role role = (Role)dgvRoles.SelectedRows[0].DataBoundItem;
                 bsRole.DataSource = role;
-                IEnumerable<User> _l = service.GetUsersInRole(role.RoleId);
-                bsRoleUsers.DataSource = service.GetUsersInRole(role.RoleId);
+                IEnumerable<User> _l = service.GetUsersInRole(role.Id);
+                bsRoleUsers.DataSource = service.GetUsersInRole(role.Id);
                 btnDeleteRole.Enabled = true;
                 tcRole.Enabled = true;
@@ -105,17 +106,17 @@
             service.InsertUser(user);
             RefreshUserlist();
-            
+
         }
 
         private void btnSaveRole_Click(object sender, EventArgs e)
         {
-           Role role = (Role)bsRole.DataSource;
-           role.ApplicationId = applicationId;
-           service.InsertRole(role);
-           tcRole.Enabled = false;
-           RefreshRolelist();
+            Role role = (Role)bsRole.DataSource;
+            role.ApplicationId = applicationId;
+            service.InsertRole(role);
+            tcRole.Enabled = false;
+            RefreshRolelist();
         }
 
-       
+
 
         private void btnAddUserToRole_Click(object sender, EventArgs e)
@@ -127,6 +128,6 @@
                 role.ApplicationId = applicationId;
                 user.ApplicationId = applicationId;
-                service.AddUserToRole(role.RoleId, user.UserId);
-                RefreshRoleUserlist(role.RoleId);
+                service.AddUserToRole(role.Id, user.Id);
+                RefreshRoleUserlist(role.Id);
             }
         }
@@ -137,5 +138,5 @@
             {
                 Role role = (Role)dgvRoles.SelectedRows[0].DataBoundItem;
-                service.DeleteRole(role.RoleId);
+                service.DeleteRole(role.Id);
                 RefreshRolelist();
             }
@@ -149,7 +150,7 @@
                 User user = (User)dgvRoleAssignedUsers.SelectedRows[0].DataBoundItem;
                 Role role = (Role)bsRole.DataSource;
-                
-                service.RemoveUserFromRole(role.RoleId, user.UserId);
-                RefreshRoleUserlist(role.RoleId);
+
+                service.RemoveUserFromRole(role.Id, user.Id);
+                RefreshRoleUserlist(role.Id);
             }
         }
@@ -160,5 +161,5 @@
             if (application != null)
             {
-                applicationId = application.ApplicationId;
+                applicationId = application.Id;
                 RefreshApplicationlist();
             }
@@ -173,5 +174,5 @@
                 if (user != null)
                 {
-                    service.DeleteUser(user.UserId);
+                    service.DeleteUser(user.Id);
                     RefreshUserlist();
                 }
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/HeuristicLab.Services.Authentication.TestClient2.csproj
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/HeuristicLab.Services.Authentication.TestClient2.csproj	(revision 4788)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/HeuristicLab.Services.Authentication.TestClient2.csproj	(revision 4789)
@@ -37,4 +37,6 @@
     <Reference Include="System" />
     <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
@@ -46,4 +48,10 @@
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="UserManagement.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="UserManagement.Designer.cs">
+      <DependentUpon>UserManagement.cs</DependentUpon>
+    </Compile>
   </ItemGroup>
   <ItemGroup>
@@ -53,7 +61,17 @@
     </ProjectReference>
     <ProjectReference Include="..\HeuristicLab.Services.Authentication\HeuristicLab.Services.Authentication.csproj">
-      <Project>{FF763830-EE9B-4FF7-9A55-4E2552E20C9A}</Project>
+      <Project>{9FD3F26D-B051-4F4C-9C66-4A361EE357AD}</Project>
       <Name>HeuristicLab.Services.Authentication</Name>
     </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="UserManagement.resx">
+      <DependentUpon>UserManagement.cs</DependentUpon>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Properties\DataSources\HeuristicLab.Services.Authentication.DataTransfer.Application.datasource" />
+    <None Include="Properties\DataSources\HeuristicLab.Services.Authentication.DataTransfer.Role.datasource" />
+    <None Include="Properties\DataSources\HeuristicLab.Services.Authentication.DataTransfer.User.datasource" />
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/Program.cs
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/Program.cs	(revision 4788)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/Program.cs	(revision 4789)
@@ -5,26 +5,12 @@
 using HeuristicLab.Services.Authentication.DataTransfer;
 
-namespace HeuristicLab.Services.Authentication.TestClient2 {
-  class Program {
-    static void Main(string[] args) {
-
-      AuthenticationService auth = new AuthenticationService();
-
-
-      Console.WriteLine("Find User with GUID: 0938331f-847e-4361-8ef0-a84e5a8b121c");
-      Guid userguid = Guid.Parse("0938331f-847e-4361-8ef0-a84e5a8b121c");
-      User user = auth.GetUser(userguid);
-
-      if (user != null) {
-        Console.WriteLine("Username of User: {0}", user.Name);
-      } else {
-        Console.WriteLine("User not found!");
-      }
-
-      Console.ReadLine();
-
-
-
+namespace HeuristicLab.Services.Authentication.TestClient2
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            System.Windows.Forms.Application.Run(new UserManagement());
+        }
     }
-  }
 }
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/Properties/DataSources/HeuristicLab.Services.Authentication.DataTransfer.Application.datasource
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/Properties/DataSources/HeuristicLab.Services.Authentication.DataTransfer.Application.datasource	(revision 4789)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/Properties/DataSources/HeuristicLab.Services.Authentication.DataTransfer.Application.datasource	(revision 4789)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="Application" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.Services.Authentication.DataTransfer.Application, HeuristicLab.Services.Authentication.DataTransfer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource>
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/Properties/DataSources/HeuristicLab.Services.Authentication.DataTransfer.Role.datasource
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/Properties/DataSources/HeuristicLab.Services.Authentication.DataTransfer.Role.datasource	(revision 4789)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/Properties/DataSources/HeuristicLab.Services.Authentication.DataTransfer.Role.datasource	(revision 4789)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="Role" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.Services.Authentication.DataTransfer.Role, HeuristicLab.Services.Authentication.DataTransfer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource>
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/Properties/DataSources/HeuristicLab.Services.Authentication.DataTransfer.User.datasource
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/Properties/DataSources/HeuristicLab.Services.Authentication.DataTransfer.User.datasource	(revision 4789)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/Properties/DataSources/HeuristicLab.Services.Authentication.DataTransfer.User.datasource	(revision 4789)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="User" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.Services.Authentication.DataTransfer.User, HeuristicLab.Services.Authentication.DataTransfer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource>
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/UserManagement.Designer.cs
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/UserManagement.Designer.cs	(revision 4789)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/UserManagement.Designer.cs	(revision 4789)
@@ -0,0 +1,1036 @@
+﻿namespace HeuristicLab.Services.Authentication.TestClient2
+{
+    partial class UserManagement
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            System.Windows.Forms.Label descriptionLabel;
+            System.Windows.Forms.Label loweredApplicationNameLabel;
+            System.Windows.Forms.Label nameLabel;
+            System.Windows.Forms.Label commentLabel;
+            System.Windows.Forms.Label emailLabel;
+            System.Windows.Forms.Label isApprovedLabel;
+            System.Windows.Forms.Label nameLabel1;
+            System.Windows.Forms.Label passwordLabel;
+            System.Windows.Forms.Label passwordSaltLabel;
+            System.Windows.Forms.Label nameLabel2;
+            System.Windows.Forms.Label loweredRoleNameLabel;
+            System.Windows.Forms.Label descriptionLabel1;
+            this.tcMain = new System.Windows.Forms.TabControl();
+            this.tpApplications = new System.Windows.Forms.TabPage();
+            this.btnUpdateApplication = new System.Windows.Forms.Button();
+            this.btnDeleteApplication = new System.Windows.Forms.Button();
+            this.descriptionTextBox = new System.Windows.Forms.TextBox();
+            this.bsApplications = new System.Windows.Forms.BindingSource(this.components);
+            this.loweredApplicationNameTextBox = new System.Windows.Forms.TextBox();
+            this.nameTextBox = new System.Windows.Forms.TextBox();
+            this.btnNewApplication = new System.Windows.Forms.Button();
+            this.dgvApplications = new System.Windows.Forms.DataGridView();
+            this.nameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.loweredApplicationNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.descriptionDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.tpUsers = new System.Windows.Forms.TabPage();
+            this.tcUser = new System.Windows.Forms.TabControl();
+            this.tabPage1 = new System.Windows.Forms.TabPage();
+            this.passwordTextBox = new System.Windows.Forms.TextBox();
+            this.bsUsers = new System.Windows.Forms.BindingSource(this.components);
+            this.isApprovedCheckBox = new System.Windows.Forms.CheckBox();
+            this.btnUpdateUser = new System.Windows.Forms.Button();
+            this.commentTextBox = new System.Windows.Forms.TextBox();
+            this.btnDeleteUser = new System.Windows.Forms.Button();
+            this.btnNewUser = new System.Windows.Forms.Button();
+            this.emailTextBox = new System.Windows.Forms.TextBox();
+            this.passwordSaltTextBox = new System.Windows.Forms.TextBox();
+            this.nameTextBox1 = new System.Windows.Forms.TextBox();
+            this.tabPage2 = new System.Windows.Forms.TabPage();
+            this.btnAddRoleToUser = new System.Windows.Forms.Button();
+            this.btnRemoveRoleFromUser = new System.Windows.Forms.Button();
+            this.dgvUserRolesAll = new System.Windows.Forms.DataGridView();
+            this.nameDataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.bsRoles = new System.Windows.Forms.BindingSource(this.components);
+            this.dgvUserRoles = new System.Windows.Forms.DataGridView();
+            this.nameDataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.bsUserRoles = new System.Windows.Forms.BindingSource(this.components);
+            this.dgvUsers = new System.Windows.Forms.DataGridView();
+            this.nameDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.emailDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.commentDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.lastLoginDateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.lastPasswordChangeDateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.lastLockoutDateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.lastActivityDateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.isLookedOutDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn();
+            this.isApprovedDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn();
+            this.tpRoles = new System.Windows.Forms.TabPage();
+            this.tcRole = new System.Windows.Forms.TabControl();
+            this.tabPage3 = new System.Windows.Forms.TabPage();
+            this.btnNewRole = new System.Windows.Forms.Button();
+            this.btnUpdateRole = new System.Windows.Forms.Button();
+            this.descriptionTextBox1 = new System.Windows.Forms.TextBox();
+            this.btnDeleteRole = new System.Windows.Forms.Button();
+            this.loweredRoleNameTextBox = new System.Windows.Forms.TextBox();
+            this.nameTextBox2 = new System.Windows.Forms.TextBox();
+            this.tabPage4 = new System.Windows.Forms.TabPage();
+            this.btnAddUserToRole = new System.Windows.Forms.Button();
+            this.btnRemoveUserFromRole = new System.Windows.Forms.Button();
+            this.dgvRoleUsersAll = new System.Windows.Forms.DataGridView();
+            this.nameDataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.dgvRoleUsers = new System.Windows.Forms.DataGridView();
+            this.nameDataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.bsRoleUsers = new System.Windows.Forms.BindingSource(this.components);
+            this.dgvRoles = new System.Windows.Forms.DataGridView();
+            this.nameDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.loweredRoleNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.descriptionDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.cbxApplications = new System.Windows.Forms.ComboBox();
+            this.bsApplicationsCombo = new System.Windows.Forms.BindingSource(this.components);
+            descriptionLabel = new System.Windows.Forms.Label();
+            loweredApplicationNameLabel = new System.Windows.Forms.Label();
+            nameLabel = new System.Windows.Forms.Label();
+            commentLabel = new System.Windows.Forms.Label();
+            emailLabel = new System.Windows.Forms.Label();
+            isApprovedLabel = new System.Windows.Forms.Label();
+            nameLabel1 = new System.Windows.Forms.Label();
+            passwordLabel = new System.Windows.Forms.Label();
+            passwordSaltLabel = new System.Windows.Forms.Label();
+            nameLabel2 = new System.Windows.Forms.Label();
+            loweredRoleNameLabel = new System.Windows.Forms.Label();
+            descriptionLabel1 = new System.Windows.Forms.Label();
+            this.tcMain.SuspendLayout();
+            this.tpApplications.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.bsApplications)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvApplications)).BeginInit();
+            this.tpUsers.SuspendLayout();
+            this.tcUser.SuspendLayout();
+            this.tabPage1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.bsUsers)).BeginInit();
+            this.tabPage2.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvUserRolesAll)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.bsRoles)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvUserRoles)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.bsUserRoles)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvUsers)).BeginInit();
+            this.tpRoles.SuspendLayout();
+            this.tcRole.SuspendLayout();
+            this.tabPage3.SuspendLayout();
+            this.tabPage4.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvRoleUsersAll)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvRoleUsers)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.bsRoleUsers)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvRoles)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.bsApplicationsCombo)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // descriptionLabel
+            // 
+            descriptionLabel.AutoSize = true;
+            descriptionLabel.Location = new System.Drawing.Point(510, 237);
+            descriptionLabel.Name = "descriptionLabel";
+            descriptionLabel.Size = new System.Drawing.Size(63, 13);
+            descriptionLabel.TabIndex = 2;
+            descriptionLabel.Text = "Description:";
+            // 
+            // loweredApplicationNameLabel
+            // 
+            loweredApplicationNameLabel.AutoSize = true;
+            loweredApplicationNameLabel.Location = new System.Drawing.Point(333, 237);
+            loweredApplicationNameLabel.Name = "loweredApplicationNameLabel";
+            loweredApplicationNameLabel.Size = new System.Drawing.Size(137, 13);
+            loweredApplicationNameLabel.TabIndex = 6;
+            loweredApplicationNameLabel.Text = "Lowered Application Name:";
+            // 
+            // nameLabel
+            // 
+            nameLabel.AutoSize = true;
+            nameLabel.Location = new System.Drawing.Point(160, 237);
+            nameLabel.Name = "nameLabel";
+            nameLabel.Size = new System.Drawing.Size(38, 13);
+            nameLabel.TabIndex = 8;
+            nameLabel.Text = "Name:";
+            // 
+            // commentLabel
+            // 
+            commentLabel.AutoSize = true;
+            commentLabel.Location = new System.Drawing.Point(28, 16);
+            commentLabel.Name = "commentLabel";
+            commentLabel.Size = new System.Drawing.Size(54, 13);
+            commentLabel.TabIndex = 1;
+            commentLabel.Text = "Comment:";
+            // 
+            // emailLabel
+            // 
+            emailLabel.AutoSize = true;
+            emailLabel.Location = new System.Drawing.Point(28, 64);
+            emailLabel.Name = "emailLabel";
+            emailLabel.Size = new System.Drawing.Size(35, 13);
+            emailLabel.TabIndex = 3;
+            emailLabel.Text = "Email:";
+            // 
+            // isApprovedLabel
+            // 
+            isApprovedLabel.AutoSize = true;
+            isApprovedLabel.Location = new System.Drawing.Point(28, 113);
+            isApprovedLabel.Name = "isApprovedLabel";
+            isApprovedLabel.Size = new System.Drawing.Size(67, 13);
+            isApprovedLabel.TabIndex = 5;
+            isApprovedLabel.Text = "Is Approved:";
+            // 
+            // nameLabel1
+            // 
+            nameLabel1.AutoSize = true;
+            nameLabel1.Location = new System.Drawing.Point(201, 16);
+            nameLabel1.Name = "nameLabel1";
+            nameLabel1.Size = new System.Drawing.Size(38, 13);
+            nameLabel1.TabIndex = 9;
+            nameLabel1.Text = "Name:";
+            // 
+            // passwordLabel
+            // 
+            passwordLabel.AutoSize = true;
+            passwordLabel.Location = new System.Drawing.Point(201, 64);
+            passwordLabel.Name = "passwordLabel";
+            passwordLabel.Size = new System.Drawing.Size(56, 13);
+            passwordLabel.TabIndex = 11;
+            passwordLabel.Text = "Password:";
+            // 
+            // passwordSaltLabel
+            // 
+            passwordSaltLabel.AutoSize = true;
+            passwordSaltLabel.Location = new System.Drawing.Point(335, 64);
+            passwordSaltLabel.Name = "passwordSaltLabel";
+            passwordSaltLabel.Size = new System.Drawing.Size(77, 13);
+            passwordSaltLabel.TabIndex = 13;
+            passwordSaltLabel.Text = "Password Salt:";
+            // 
+            // nameLabel2
+            // 
+            nameLabel2.AutoSize = true;
+            nameLabel2.Location = new System.Drawing.Point(41, 26);
+            nameLabel2.Name = "nameLabel2";
+            nameLabel2.Size = new System.Drawing.Size(38, 13);
+            nameLabel2.TabIndex = 1;
+            nameLabel2.Text = "Name:";
+            // 
+            // loweredRoleNameLabel
+            // 
+            loweredRoleNameLabel.AutoSize = true;
+            loweredRoleNameLabel.Location = new System.Drawing.Point(41, 78);
+            loweredRoleNameLabel.Name = "loweredRoleNameLabel";
+            loweredRoleNameLabel.Size = new System.Drawing.Size(107, 13);
+            loweredRoleNameLabel.TabIndex = 3;
+            loweredRoleNameLabel.Text = "Lowered Role Name:";
+            // 
+            // descriptionLabel1
+            // 
+            descriptionLabel1.AutoSize = true;
+            descriptionLabel1.Location = new System.Drawing.Point(41, 128);
+            descriptionLabel1.Name = "descriptionLabel1";
+            descriptionLabel1.Size = new System.Drawing.Size(63, 13);
+            descriptionLabel1.TabIndex = 5;
+            descriptionLabel1.Text = "Description:";
+            // 
+            // tcMain
+            // 
+            this.tcMain.Controls.Add(this.tpApplications);
+            this.tcMain.Controls.Add(this.tpUsers);
+            this.tcMain.Controls.Add(this.tpRoles);
+            this.tcMain.Location = new System.Drawing.Point(31, 63);
+            this.tcMain.Name = "tcMain";
+            this.tcMain.SelectedIndex = 0;
+            this.tcMain.Size = new System.Drawing.Size(829, 556);
+            this.tcMain.TabIndex = 0;
+            // 
+            // tpApplications
+            // 
+            this.tpApplications.AutoScroll = true;
+            this.tpApplications.Controls.Add(this.btnUpdateApplication);
+            this.tpApplications.Controls.Add(this.btnDeleteApplication);
+            this.tpApplications.Controls.Add(descriptionLabel);
+            this.tpApplications.Controls.Add(this.descriptionTextBox);
+            this.tpApplications.Controls.Add(loweredApplicationNameLabel);
+            this.tpApplications.Controls.Add(this.loweredApplicationNameTextBox);
+            this.tpApplications.Controls.Add(nameLabel);
+            this.tpApplications.Controls.Add(this.nameTextBox);
+            this.tpApplications.Controls.Add(this.btnNewApplication);
+            this.tpApplications.Controls.Add(this.dgvApplications);
+            this.tpApplications.Location = new System.Drawing.Point(4, 22);
+            this.tpApplications.Name = "tpApplications";
+            this.tpApplications.Padding = new System.Windows.Forms.Padding(3);
+            this.tpApplications.Size = new System.Drawing.Size(821, 530);
+            this.tpApplications.TabIndex = 0;
+            this.tpApplications.Text = "Applications";
+            this.tpApplications.UseVisualStyleBackColor = true;
+            // 
+            // btnUpdateApplication
+            // 
+            this.btnUpdateApplication.Location = new System.Drawing.Point(23, 309);
+            this.btnUpdateApplication.Name = "btnUpdateApplication";
+            this.btnUpdateApplication.Size = new System.Drawing.Size(75, 23);
+            this.btnUpdateApplication.TabIndex = 11;
+            this.btnUpdateApplication.Text = "update";
+            this.btnUpdateApplication.UseVisualStyleBackColor = true;
+            this.btnUpdateApplication.Click += new System.EventHandler(this.btnUpdateApplication_Click);
+            // 
+            // btnDeleteApplication
+            // 
+            this.btnDeleteApplication.Location = new System.Drawing.Point(23, 280);
+            this.btnDeleteApplication.Name = "btnDeleteApplication";
+            this.btnDeleteApplication.Size = new System.Drawing.Size(75, 23);
+            this.btnDeleteApplication.TabIndex = 10;
+            this.btnDeleteApplication.Text = "delete";
+            this.btnDeleteApplication.UseVisualStyleBackColor = true;
+            this.btnDeleteApplication.Click += new System.EventHandler(this.btnDeleteApplication_Click);
+            // 
+            // descriptionTextBox
+            // 
+            this.descriptionTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsApplications, "Description", true));
+            this.descriptionTextBox.Location = new System.Drawing.Point(513, 253);
+            this.descriptionTextBox.Name = "descriptionTextBox";
+            this.descriptionTextBox.Size = new System.Drawing.Size(152, 20);
+            this.descriptionTextBox.TabIndex = 3;
+            // 
+            // bsApplications
+            // 
+            this.bsApplications.DataSource = typeof(HeuristicLab.Services.Authentication.DataTransfer.Application);
+            // 
+            // loweredApplicationNameTextBox
+            // 
+            this.loweredApplicationNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsApplications, "LoweredApplicationName", true));
+            this.loweredApplicationNameTextBox.Location = new System.Drawing.Point(336, 253);
+            this.loweredApplicationNameTextBox.Name = "loweredApplicationNameTextBox";
+            this.loweredApplicationNameTextBox.Size = new System.Drawing.Size(152, 20);
+            this.loweredApplicationNameTextBox.TabIndex = 7;
+            // 
+            // nameTextBox
+            // 
+            this.nameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsApplications, "Name", true));
+            this.nameTextBox.Location = new System.Drawing.Point(163, 253);
+            this.nameTextBox.Name = "nameTextBox";
+            this.nameTextBox.Size = new System.Drawing.Size(152, 20);
+            this.nameTextBox.TabIndex = 9;
+            // 
+            // btnNewApplication
+            // 
+            this.btnNewApplication.Location = new System.Drawing.Point(23, 251);
+            this.btnNewApplication.Name = "btnNewApplication";
+            this.btnNewApplication.Size = new System.Drawing.Size(75, 23);
+            this.btnNewApplication.TabIndex = 1;
+            this.btnNewApplication.Text = "new";
+            this.btnNewApplication.UseVisualStyleBackColor = true;
+            this.btnNewApplication.Click += new System.EventHandler(this.btnNewApplication_Click);
+            // 
+            // dgvApplications
+            // 
+            this.dgvApplications.AllowUserToAddRows = false;
+            this.dgvApplications.AllowUserToDeleteRows = false;
+            this.dgvApplications.AutoGenerateColumns = false;
+            this.dgvApplications.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvApplications.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+            this.nameDataGridViewTextBoxColumn,
+            this.loweredApplicationNameDataGridViewTextBoxColumn,
+            this.descriptionDataGridViewTextBoxColumn});
+            this.dgvApplications.DataSource = this.bsApplications;
+            this.dgvApplications.Location = new System.Drawing.Point(6, 6);
+            this.dgvApplications.Name = "dgvApplications";
+            this.dgvApplications.Size = new System.Drawing.Size(809, 194);
+            this.dgvApplications.TabIndex = 0;
+            this.dgvApplications.SelectionChanged += new System.EventHandler(this.dgvApplications_SelectionChanged);
+            // 
+            // nameDataGridViewTextBoxColumn
+            // 
+            this.nameDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.nameDataGridViewTextBoxColumn.DataPropertyName = "Name";
+            this.nameDataGridViewTextBoxColumn.HeaderText = "Name";
+            this.nameDataGridViewTextBoxColumn.Name = "nameDataGridViewTextBoxColumn";
+            this.nameDataGridViewTextBoxColumn.Width = 60;
+            // 
+            // loweredApplicationNameDataGridViewTextBoxColumn
+            // 
+            this.loweredApplicationNameDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.loweredApplicationNameDataGridViewTextBoxColumn.DataPropertyName = "LoweredApplicationName";
+            this.loweredApplicationNameDataGridViewTextBoxColumn.HeaderText = "LoweredApplicationName";
+            this.loweredApplicationNameDataGridViewTextBoxColumn.Name = "loweredApplicationNameDataGridViewTextBoxColumn";
+            this.loweredApplicationNameDataGridViewTextBoxColumn.Width = 153;
+            // 
+            // descriptionDataGridViewTextBoxColumn
+            // 
+            this.descriptionDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.descriptionDataGridViewTextBoxColumn.DataPropertyName = "Description";
+            this.descriptionDataGridViewTextBoxColumn.HeaderText = "Description";
+            this.descriptionDataGridViewTextBoxColumn.Name = "descriptionDataGridViewTextBoxColumn";
+            this.descriptionDataGridViewTextBoxColumn.Width = 85;
+            // 
+            // tpUsers
+            // 
+            this.tpUsers.AutoScroll = true;
+            this.tpUsers.Controls.Add(this.tcUser);
+            this.tpUsers.Controls.Add(this.dgvUsers);
+            this.tpUsers.Location = new System.Drawing.Point(4, 22);
+            this.tpUsers.Name = "tpUsers";
+            this.tpUsers.Padding = new System.Windows.Forms.Padding(3);
+            this.tpUsers.Size = new System.Drawing.Size(821, 530);
+            this.tpUsers.TabIndex = 1;
+            this.tpUsers.Text = "Users";
+            this.tpUsers.UseVisualStyleBackColor = true;
+            // 
+            // tcUser
+            // 
+            this.tcUser.Controls.Add(this.tabPage1);
+            this.tcUser.Controls.Add(this.tabPage2);
+            this.tcUser.Location = new System.Drawing.Point(6, 212);
+            this.tcUser.Name = "tcUser";
+            this.tcUser.SelectedIndex = 0;
+            this.tcUser.Size = new System.Drawing.Size(809, 312);
+            this.tcUser.TabIndex = 18;
+            // 
+            // tabPage1
+            // 
+            this.tabPage1.Controls.Add(this.passwordTextBox);
+            this.tabPage1.Controls.Add(this.isApprovedCheckBox);
+            this.tabPage1.Controls.Add(this.btnUpdateUser);
+            this.tabPage1.Controls.Add(this.commentTextBox);
+            this.tabPage1.Controls.Add(this.btnDeleteUser);
+            this.tabPage1.Controls.Add(commentLabel);
+            this.tabPage1.Controls.Add(this.btnNewUser);
+            this.tabPage1.Controls.Add(this.emailTextBox);
+            this.tabPage1.Controls.Add(passwordSaltLabel);
+            this.tabPage1.Controls.Add(emailLabel);
+            this.tabPage1.Controls.Add(this.passwordSaltTextBox);
+            this.tabPage1.Controls.Add(isApprovedLabel);
+            this.tabPage1.Controls.Add(passwordLabel);
+            this.tabPage1.Controls.Add(this.nameTextBox1);
+            this.tabPage1.Controls.Add(nameLabel1);
+            this.tabPage1.Location = new System.Drawing.Point(4, 22);
+            this.tabPage1.Name = "tabPage1";
+            this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPage1.Size = new System.Drawing.Size(801, 286);
+            this.tabPage1.TabIndex = 0;
+            this.tabPage1.Text = "tabPage1";
+            this.tabPage1.UseVisualStyleBackColor = true;
+            // 
+            // passwordTextBox
+            // 
+            this.passwordTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsUsers, "Password", true));
+            this.passwordTextBox.Location = new System.Drawing.Point(204, 80);
+            this.passwordTextBox.Name = "passwordTextBox";
+            this.passwordTextBox.Size = new System.Drawing.Size(100, 20);
+            this.passwordTextBox.TabIndex = 12;
+            // 
+            // bsUsers
+            // 
+            this.bsUsers.DataSource = typeof(HeuristicLab.Services.Authentication.DataTransfer.User);
+            // 
+            // isApprovedCheckBox
+            // 
+            this.isApprovedCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("CheckState", this.bsUsers, "IsApproved", true));
+            this.isApprovedCheckBox.Location = new System.Drawing.Point(114, 108);
+            this.isApprovedCheckBox.Name = "isApprovedCheckBox";
+            this.isApprovedCheckBox.Size = new System.Drawing.Size(104, 24);
+            this.isApprovedCheckBox.TabIndex = 6;
+            this.isApprovedCheckBox.Text = "checkBox1";
+            this.isApprovedCheckBox.UseVisualStyleBackColor = true;
+            // 
+            // btnUpdateUser
+            // 
+            this.btnUpdateUser.Location = new System.Drawing.Point(505, 102);
+            this.btnUpdateUser.Name = "btnUpdateUser";
+            this.btnUpdateUser.Size = new System.Drawing.Size(75, 23);
+            this.btnUpdateUser.TabIndex = 17;
+            this.btnUpdateUser.Text = "upd";
+            this.btnUpdateUser.UseVisualStyleBackColor = true;
+            this.btnUpdateUser.Click += new System.EventHandler(this.btnUpdateUser_Click);
+            // 
+            // commentTextBox
+            // 
+            this.commentTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsUsers, "Comment", true));
+            this.commentTextBox.Location = new System.Drawing.Point(31, 32);
+            this.commentTextBox.Name = "commentTextBox";
+            this.commentTextBox.Size = new System.Drawing.Size(100, 20);
+            this.commentTextBox.TabIndex = 2;
+            // 
+            // btnDeleteUser
+            // 
+            this.btnDeleteUser.Location = new System.Drawing.Point(505, 64);
+            this.btnDeleteUser.Name = "btnDeleteUser";
+            this.btnDeleteUser.Size = new System.Drawing.Size(75, 23);
+            this.btnDeleteUser.TabIndex = 16;
+            this.btnDeleteUser.Text = "del";
+            this.btnDeleteUser.UseVisualStyleBackColor = true;
+            this.btnDeleteUser.Click += new System.EventHandler(this.btnDeleteUser_Click);
+            // 
+            // btnNewUser
+            // 
+            this.btnNewUser.Location = new System.Drawing.Point(505, 28);
+            this.btnNewUser.Name = "btnNewUser";
+            this.btnNewUser.Size = new System.Drawing.Size(75, 23);
+            this.btnNewUser.TabIndex = 15;
+            this.btnNewUser.Text = "new";
+            this.btnNewUser.UseVisualStyleBackColor = true;
+            this.btnNewUser.Click += new System.EventHandler(this.btnNewUser_Click);
+            // 
+            // emailTextBox
+            // 
+            this.emailTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsUsers, "Email", true));
+            this.emailTextBox.Location = new System.Drawing.Point(31, 80);
+            this.emailTextBox.Name = "emailTextBox";
+            this.emailTextBox.Size = new System.Drawing.Size(100, 20);
+            this.emailTextBox.TabIndex = 4;
+            // 
+            // passwordSaltTextBox
+            // 
+            this.passwordSaltTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsUsers, "PasswordSalt", true));
+            this.passwordSaltTextBox.Location = new System.Drawing.Point(338, 80);
+            this.passwordSaltTextBox.Name = "passwordSaltTextBox";
+            this.passwordSaltTextBox.Size = new System.Drawing.Size(100, 20);
+            this.passwordSaltTextBox.TabIndex = 14;
+            // 
+            // nameTextBox1
+            // 
+            this.nameTextBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsUsers, "Name", true));
+            this.nameTextBox1.Location = new System.Drawing.Point(204, 32);
+            this.nameTextBox1.Name = "nameTextBox1";
+            this.nameTextBox1.Size = new System.Drawing.Size(100, 20);
+            this.nameTextBox1.TabIndex = 10;
+            // 
+            // tabPage2
+            // 
+            this.tabPage2.Controls.Add(this.btnAddRoleToUser);
+            this.tabPage2.Controls.Add(this.btnRemoveRoleFromUser);
+            this.tabPage2.Controls.Add(this.dgvUserRolesAll);
+            this.tabPage2.Controls.Add(this.dgvUserRoles);
+            this.tabPage2.Location = new System.Drawing.Point(4, 22);
+            this.tabPage2.Name = "tabPage2";
+            this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPage2.Size = new System.Drawing.Size(801, 286);
+            this.tabPage2.TabIndex = 1;
+            this.tabPage2.Text = "tabPage2";
+            this.tabPage2.UseVisualStyleBackColor = true;
+            // 
+            // btnAddRoleToUser
+            // 
+            this.btnAddRoleToUser.Location = new System.Drawing.Point(463, 24);
+            this.btnAddRoleToUser.Name = "btnAddRoleToUser";
+            this.btnAddRoleToUser.Size = new System.Drawing.Size(75, 23);
+            this.btnAddRoleToUser.TabIndex = 3;
+            this.btnAddRoleToUser.Text = "add";
+            this.btnAddRoleToUser.UseVisualStyleBackColor = true;
+            this.btnAddRoleToUser.Click += new System.EventHandler(this.btnAddRoleToUser_Click);
+            // 
+            // btnRemoveRoleFromUser
+            // 
+            this.btnRemoveRoleFromUser.Location = new System.Drawing.Point(191, 24);
+            this.btnRemoveRoleFromUser.Name = "btnRemoveRoleFromUser";
+            this.btnRemoveRoleFromUser.Size = new System.Drawing.Size(75, 23);
+            this.btnRemoveRoleFromUser.TabIndex = 2;
+            this.btnRemoveRoleFromUser.Text = "rem";
+            this.btnRemoveRoleFromUser.UseVisualStyleBackColor = true;
+            this.btnRemoveRoleFromUser.Click += new System.EventHandler(this.btnRemoveRoleFromUser_Click);
+            // 
+            // dgvUserRolesAll
+            // 
+            this.dgvUserRolesAll.AllowUserToAddRows = false;
+            this.dgvUserRolesAll.AllowUserToDeleteRows = false;
+            this.dgvUserRolesAll.AutoGenerateColumns = false;
+            this.dgvUserRolesAll.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvUserRolesAll.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+            this.nameDataGridViewTextBoxColumn4});
+            this.dgvUserRolesAll.DataSource = this.bsRoles;
+            this.dgvUserRolesAll.Location = new System.Drawing.Point(544, 24);
+            this.dgvUserRolesAll.Name = "dgvUserRolesAll";
+            this.dgvUserRolesAll.Size = new System.Drawing.Size(175, 242);
+            this.dgvUserRolesAll.TabIndex = 1;
+            // 
+            // nameDataGridViewTextBoxColumn4
+            // 
+            this.nameDataGridViewTextBoxColumn4.DataPropertyName = "Name";
+            this.nameDataGridViewTextBoxColumn4.HeaderText = "Name";
+            this.nameDataGridViewTextBoxColumn4.Name = "nameDataGridViewTextBoxColumn4";
+            // 
+            // bsRoles
+            // 
+            this.bsRoles.DataSource = typeof(HeuristicLab.Services.Authentication.DataTransfer.Role);
+            // 
+            // dgvUserRoles
+            // 
+            this.dgvUserRoles.AllowUserToAddRows = false;
+            this.dgvUserRoles.AllowUserToDeleteRows = false;
+            this.dgvUserRoles.AutoGenerateColumns = false;
+            this.dgvUserRoles.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvUserRoles.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+            this.nameDataGridViewTextBoxColumn3});
+            this.dgvUserRoles.DataSource = this.bsUserRoles;
+            this.dgvUserRoles.Location = new System.Drawing.Point(17, 24);
+            this.dgvUserRoles.Name = "dgvUserRoles";
+            this.dgvUserRoles.Size = new System.Drawing.Size(168, 242);
+            this.dgvUserRoles.TabIndex = 0;
+            // 
+            // nameDataGridViewTextBoxColumn3
+            // 
+            this.nameDataGridViewTextBoxColumn3.DataPropertyName = "Name";
+            this.nameDataGridViewTextBoxColumn3.HeaderText = "Name";
+            this.nameDataGridViewTextBoxColumn3.Name = "nameDataGridViewTextBoxColumn3";
+            // 
+            // bsUserRoles
+            // 
+            this.bsUserRoles.DataSource = typeof(HeuristicLab.Services.Authentication.DataTransfer.Role);
+            // 
+            // dgvUsers
+            // 
+            this.dgvUsers.AllowUserToAddRows = false;
+            this.dgvUsers.AllowUserToDeleteRows = false;
+            this.dgvUsers.AutoGenerateColumns = false;
+            this.dgvUsers.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvUsers.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+            this.nameDataGridViewTextBoxColumn1,
+            this.emailDataGridViewTextBoxColumn,
+            this.commentDataGridViewTextBoxColumn,
+            this.lastLoginDateDataGridViewTextBoxColumn,
+            this.lastPasswordChangeDateDataGridViewTextBoxColumn,
+            this.lastLockoutDateDataGridViewTextBoxColumn,
+            this.lastActivityDateDataGridViewTextBoxColumn,
+            this.isLookedOutDataGridViewCheckBoxColumn,
+            this.isApprovedDataGridViewCheckBoxColumn});
+            this.dgvUsers.DataSource = this.bsUsers;
+            this.dgvUsers.Location = new System.Drawing.Point(6, 6);
+            this.dgvUsers.Name = "dgvUsers";
+            this.dgvUsers.Size = new System.Drawing.Size(809, 191);
+            this.dgvUsers.TabIndex = 0;
+            this.dgvUsers.SelectionChanged += new System.EventHandler(this.dgvUsers_SelectionChanged);
+            // 
+            // nameDataGridViewTextBoxColumn1
+            // 
+            this.nameDataGridViewTextBoxColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.nameDataGridViewTextBoxColumn1.DataPropertyName = "Name";
+            this.nameDataGridViewTextBoxColumn1.HeaderText = "Name";
+            this.nameDataGridViewTextBoxColumn1.Name = "nameDataGridViewTextBoxColumn1";
+            this.nameDataGridViewTextBoxColumn1.Width = 60;
+            // 
+            // emailDataGridViewTextBoxColumn
+            // 
+            this.emailDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.emailDataGridViewTextBoxColumn.DataPropertyName = "Email";
+            this.emailDataGridViewTextBoxColumn.HeaderText = "Email";
+            this.emailDataGridViewTextBoxColumn.Name = "emailDataGridViewTextBoxColumn";
+            this.emailDataGridViewTextBoxColumn.Width = 57;
+            // 
+            // commentDataGridViewTextBoxColumn
+            // 
+            this.commentDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.commentDataGridViewTextBoxColumn.DataPropertyName = "Comment";
+            this.commentDataGridViewTextBoxColumn.HeaderText = "Comment";
+            this.commentDataGridViewTextBoxColumn.Name = "commentDataGridViewTextBoxColumn";
+            this.commentDataGridViewTextBoxColumn.Width = 76;
+            // 
+            // lastLoginDateDataGridViewTextBoxColumn
+            // 
+            this.lastLoginDateDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.lastLoginDateDataGridViewTextBoxColumn.DataPropertyName = "LastLoginDate";
+            this.lastLoginDateDataGridViewTextBoxColumn.HeaderText = "LastLoginDate";
+            this.lastLoginDateDataGridViewTextBoxColumn.Name = "lastLoginDateDataGridViewTextBoxColumn";
+            this.lastLoginDateDataGridViewTextBoxColumn.Width = 101;
+            // 
+            // lastPasswordChangeDateDataGridViewTextBoxColumn
+            // 
+            this.lastPasswordChangeDateDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.lastPasswordChangeDateDataGridViewTextBoxColumn.DataPropertyName = "LastPasswordChangeDate";
+            this.lastPasswordChangeDateDataGridViewTextBoxColumn.HeaderText = "LastPasswordChangeDate";
+            this.lastPasswordChangeDateDataGridViewTextBoxColumn.Name = "lastPasswordChangeDateDataGridViewTextBoxColumn";
+            this.lastPasswordChangeDateDataGridViewTextBoxColumn.Width = 158;
+            // 
+            // lastLockoutDateDataGridViewTextBoxColumn
+            // 
+            this.lastLockoutDateDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.lastLockoutDateDataGridViewTextBoxColumn.DataPropertyName = "LastLockoutDate";
+            this.lastLockoutDateDataGridViewTextBoxColumn.HeaderText = "LastLockoutDate";
+            this.lastLockoutDateDataGridViewTextBoxColumn.Name = "lastLockoutDateDataGridViewTextBoxColumn";
+            this.lastLockoutDateDataGridViewTextBoxColumn.Width = 114;
+            // 
+            // lastActivityDateDataGridViewTextBoxColumn
+            // 
+            this.lastActivityDateDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.lastActivityDateDataGridViewTextBoxColumn.DataPropertyName = "LastActivityDate";
+            this.lastActivityDateDataGridViewTextBoxColumn.HeaderText = "LastActivityDate";
+            this.lastActivityDateDataGridViewTextBoxColumn.Name = "lastActivityDateDataGridViewTextBoxColumn";
+            this.lastActivityDateDataGridViewTextBoxColumn.Width = 109;
+            // 
+            // isLookedOutDataGridViewCheckBoxColumn
+            // 
+            this.isLookedOutDataGridViewCheckBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.isLookedOutDataGridViewCheckBoxColumn.DataPropertyName = "IsLookedOut";
+            this.isLookedOutDataGridViewCheckBoxColumn.HeaderText = "IsLookedOut";
+            this.isLookedOutDataGridViewCheckBoxColumn.Name = "isLookedOutDataGridViewCheckBoxColumn";
+            this.isLookedOutDataGridViewCheckBoxColumn.Width = 74;
+            // 
+            // isApprovedDataGridViewCheckBoxColumn
+            // 
+            this.isApprovedDataGridViewCheckBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.isApprovedDataGridViewCheckBoxColumn.DataPropertyName = "IsApproved";
+            this.isApprovedDataGridViewCheckBoxColumn.HeaderText = "IsApproved";
+            this.isApprovedDataGridViewCheckBoxColumn.Name = "isApprovedDataGridViewCheckBoxColumn";
+            this.isApprovedDataGridViewCheckBoxColumn.Width = 67;
+            // 
+            // tpRoles
+            // 
+            this.tpRoles.AutoScroll = true;
+            this.tpRoles.Controls.Add(this.tcRole);
+            this.tpRoles.Controls.Add(this.dgvRoles);
+            this.tpRoles.Location = new System.Drawing.Point(4, 22);
+            this.tpRoles.Name = "tpRoles";
+            this.tpRoles.Size = new System.Drawing.Size(821, 530);
+            this.tpRoles.TabIndex = 2;
+            this.tpRoles.Text = "Roles";
+            this.tpRoles.UseVisualStyleBackColor = true;
+            // 
+            // tcRole
+            // 
+            this.tcRole.Controls.Add(this.tabPage3);
+            this.tcRole.Controls.Add(this.tabPage4);
+            this.tcRole.Location = new System.Drawing.Point(3, 202);
+            this.tcRole.Name = "tcRole";
+            this.tcRole.SelectedIndex = 0;
+            this.tcRole.Size = new System.Drawing.Size(815, 253);
+            this.tcRole.TabIndex = 10;
+            // 
+            // tabPage3
+            // 
+            this.tabPage3.Controls.Add(this.btnNewRole);
+            this.tabPage3.Controls.Add(descriptionLabel1);
+            this.tabPage3.Controls.Add(this.btnUpdateRole);
+            this.tabPage3.Controls.Add(this.descriptionTextBox1);
+            this.tabPage3.Controls.Add(this.btnDeleteRole);
+            this.tabPage3.Controls.Add(loweredRoleNameLabel);
+            this.tabPage3.Controls.Add(this.loweredRoleNameTextBox);
+            this.tabPage3.Controls.Add(this.nameTextBox2);
+            this.tabPage3.Controls.Add(nameLabel2);
+            this.tabPage3.Location = new System.Drawing.Point(4, 22);
+            this.tabPage3.Name = "tabPage3";
+            this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPage3.Size = new System.Drawing.Size(807, 227);
+            this.tabPage3.TabIndex = 0;
+            this.tabPage3.Text = "tabPage3";
+            this.tabPage3.UseVisualStyleBackColor = true;
+            // 
+            // btnNewRole
+            // 
+            this.btnNewRole.Location = new System.Drawing.Point(205, 42);
+            this.btnNewRole.Name = "btnNewRole";
+            this.btnNewRole.Size = new System.Drawing.Size(75, 23);
+            this.btnNewRole.TabIndex = 7;
+            this.btnNewRole.Text = "new";
+            this.btnNewRole.UseVisualStyleBackColor = true;
+            this.btnNewRole.Click += new System.EventHandler(this.btnNewRole_Click);
+            // 
+            // btnUpdateRole
+            // 
+            this.btnUpdateRole.Location = new System.Drawing.Point(205, 102);
+            this.btnUpdateRole.Name = "btnUpdateRole";
+            this.btnUpdateRole.Size = new System.Drawing.Size(75, 23);
+            this.btnUpdateRole.TabIndex = 9;
+            this.btnUpdateRole.Text = "upd";
+            this.btnUpdateRole.UseVisualStyleBackColor = true;
+            this.btnUpdateRole.Click += new System.EventHandler(this.btnUpdateRole_Click);
+            // 
+            // descriptionTextBox1
+            // 
+            this.descriptionTextBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsRoles, "Description", true));
+            this.descriptionTextBox1.Location = new System.Drawing.Point(44, 144);
+            this.descriptionTextBox1.Name = "descriptionTextBox1";
+            this.descriptionTextBox1.Size = new System.Drawing.Size(100, 20);
+            this.descriptionTextBox1.TabIndex = 6;
+            // 
+            // btnDeleteRole
+            // 
+            this.btnDeleteRole.Location = new System.Drawing.Point(205, 72);
+            this.btnDeleteRole.Name = "btnDeleteRole";
+            this.btnDeleteRole.Size = new System.Drawing.Size(75, 23);
+            this.btnDeleteRole.TabIndex = 8;
+            this.btnDeleteRole.Text = "del";
+            this.btnDeleteRole.UseVisualStyleBackColor = true;
+            this.btnDeleteRole.Click += new System.EventHandler(this.btnDeleteRole_Click);
+            // 
+            // loweredRoleNameTextBox
+            // 
+            this.loweredRoleNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsRoles, "LoweredRoleName", true));
+            this.loweredRoleNameTextBox.Location = new System.Drawing.Point(44, 94);
+            this.loweredRoleNameTextBox.Name = "loweredRoleNameTextBox";
+            this.loweredRoleNameTextBox.Size = new System.Drawing.Size(100, 20);
+            this.loweredRoleNameTextBox.TabIndex = 4;
+            // 
+            // nameTextBox2
+            // 
+            this.nameTextBox2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsRoles, "Name", true));
+            this.nameTextBox2.Location = new System.Drawing.Point(44, 42);
+            this.nameTextBox2.Name = "nameTextBox2";
+            this.nameTextBox2.Size = new System.Drawing.Size(100, 20);
+            this.nameTextBox2.TabIndex = 2;
+            // 
+            // tabPage4
+            // 
+            this.tabPage4.Controls.Add(this.btnAddUserToRole);
+            this.tabPage4.Controls.Add(this.btnRemoveUserFromRole);
+            this.tabPage4.Controls.Add(this.dgvRoleUsersAll);
+            this.tabPage4.Controls.Add(this.dgvRoleUsers);
+            this.tabPage4.Location = new System.Drawing.Point(4, 22);
+            this.tabPage4.Name = "tabPage4";
+            this.tabPage4.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPage4.Size = new System.Drawing.Size(807, 227);
+            this.tabPage4.TabIndex = 1;
+            this.tabPage4.Text = "tabPage4";
+            this.tabPage4.UseVisualStyleBackColor = true;
+            // 
+            // btnAddUserToRole
+            // 
+            this.btnAddUserToRole.Location = new System.Drawing.Point(463, 37);
+            this.btnAddUserToRole.Name = "btnAddUserToRole";
+            this.btnAddUserToRole.Size = new System.Drawing.Size(75, 23);
+            this.btnAddUserToRole.TabIndex = 3;
+            this.btnAddUserToRole.Text = "add";
+            this.btnAddUserToRole.UseVisualStyleBackColor = true;
+            this.btnAddUserToRole.Click += new System.EventHandler(this.btnAddUserToRole_Click);
+            // 
+            // btnRemoveUserFromRole
+            // 
+            this.btnRemoveUserFromRole.Location = new System.Drawing.Point(205, 37);
+            this.btnRemoveUserFromRole.Name = "btnRemoveUserFromRole";
+            this.btnRemoveUserFromRole.Size = new System.Drawing.Size(75, 23);
+            this.btnRemoveUserFromRole.TabIndex = 2;
+            this.btnRemoveUserFromRole.Text = "rem";
+            this.btnRemoveUserFromRole.UseVisualStyleBackColor = true;
+            this.btnRemoveUserFromRole.Click += new System.EventHandler(this.btnRemoveUserFromRole_Click);
+            // 
+            // dgvRoleUsersAll
+            // 
+            this.dgvRoleUsersAll.AllowUserToAddRows = false;
+            this.dgvRoleUsersAll.AllowUserToDeleteRows = false;
+            this.dgvRoleUsersAll.AutoGenerateColumns = false;
+            this.dgvRoleUsersAll.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvRoleUsersAll.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+            this.nameDataGridViewTextBoxColumn6});
+            this.dgvRoleUsersAll.DataSource = this.bsUsers;
+            this.dgvRoleUsersAll.Location = new System.Drawing.Point(544, 37);
+            this.dgvRoleUsersAll.Name = "dgvRoleUsersAll";
+            this.dgvRoleUsersAll.Size = new System.Drawing.Size(240, 150);
+            this.dgvRoleUsersAll.TabIndex = 1;
+            // 
+            // nameDataGridViewTextBoxColumn6
+            // 
+            this.nameDataGridViewTextBoxColumn6.DataPropertyName = "Name";
+            this.nameDataGridViewTextBoxColumn6.HeaderText = "Name";
+            this.nameDataGridViewTextBoxColumn6.Name = "nameDataGridViewTextBoxColumn6";
+            // 
+            // dgvRoleUsers
+            // 
+            this.dgvRoleUsers.AllowUserToAddRows = false;
+            this.dgvRoleUsers.AllowUserToDeleteRows = false;
+            this.dgvRoleUsers.AutoGenerateColumns = false;
+            this.dgvRoleUsers.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvRoleUsers.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+            this.nameDataGridViewTextBoxColumn5});
+            this.dgvRoleUsers.DataSource = this.bsRoleUsers;
+            this.dgvRoleUsers.Location = new System.Drawing.Point(15, 37);
+            this.dgvRoleUsers.Name = "dgvRoleUsers";
+            this.dgvRoleUsers.Size = new System.Drawing.Size(184, 150);
+            this.dgvRoleUsers.TabIndex = 0;
+            // 
+            // nameDataGridViewTextBoxColumn5
+            // 
+            this.nameDataGridViewTextBoxColumn5.DataPropertyName = "Name";
+            this.nameDataGridViewTextBoxColumn5.HeaderText = "Name";
+            this.nameDataGridViewTextBoxColumn5.Name = "nameDataGridViewTextBoxColumn5";
+            // 
+            // bsRoleUsers
+            // 
+            this.bsRoleUsers.DataSource = typeof(HeuristicLab.Services.Authentication.DataTransfer.User);
+            // 
+            // dgvRoles
+            // 
+            this.dgvRoles.AllowUserToAddRows = false;
+            this.dgvRoles.AllowUserToDeleteRows = false;
+            this.dgvRoles.AutoGenerateColumns = false;
+            this.dgvRoles.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvRoles.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+            this.nameDataGridViewTextBoxColumn2,
+            this.loweredRoleNameDataGridViewTextBoxColumn,
+            this.descriptionDataGridViewTextBoxColumn1});
+            this.dgvRoles.DataSource = this.bsRoles;
+            this.dgvRoles.Location = new System.Drawing.Point(3, 3);
+            this.dgvRoles.Name = "dgvRoles";
+            this.dgvRoles.Size = new System.Drawing.Size(815, 193);
+            this.dgvRoles.TabIndex = 0;
+            this.dgvRoles.SelectionChanged += new System.EventHandler(this.dgvRoles_SelectionChanged);
+            // 
+            // nameDataGridViewTextBoxColumn2
+            // 
+            this.nameDataGridViewTextBoxColumn2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.nameDataGridViewTextBoxColumn2.DataPropertyName = "Name";
+            this.nameDataGridViewTextBoxColumn2.HeaderText = "Name";
+            this.nameDataGridViewTextBoxColumn2.Name = "nameDataGridViewTextBoxColumn2";
+            this.nameDataGridViewTextBoxColumn2.Width = 60;
+            // 
+            // loweredRoleNameDataGridViewTextBoxColumn
+            // 
+            this.loweredRoleNameDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.loweredRoleNameDataGridViewTextBoxColumn.DataPropertyName = "LoweredRoleName";
+            this.loweredRoleNameDataGridViewTextBoxColumn.HeaderText = "LoweredRoleName";
+            this.loweredRoleNameDataGridViewTextBoxColumn.Name = "loweredRoleNameDataGridViewTextBoxColumn";
+            this.loweredRoleNameDataGridViewTextBoxColumn.Width = 123;
+            // 
+            // descriptionDataGridViewTextBoxColumn1
+            // 
+            this.descriptionDataGridViewTextBoxColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
+            this.descriptionDataGridViewTextBoxColumn1.DataPropertyName = "Description";
+            this.descriptionDataGridViewTextBoxColumn1.HeaderText = "Description";
+            this.descriptionDataGridViewTextBoxColumn1.Name = "descriptionDataGridViewTextBoxColumn1";
+            this.descriptionDataGridViewTextBoxColumn1.Width = 85;
+            // 
+            // cbxApplications
+            // 
+            this.cbxApplications.DataSource = this.bsApplicationsCombo;
+            this.cbxApplications.DisplayMember = "Name";
+            this.cbxApplications.FormattingEnabled = true;
+            this.cbxApplications.Location = new System.Drawing.Point(31, 24);
+            this.cbxApplications.Name = "cbxApplications";
+            this.cbxApplications.Size = new System.Drawing.Size(234, 21);
+            this.cbxApplications.TabIndex = 1;
+            this.cbxApplications.SelectedIndexChanged += new System.EventHandler(this.cbxApplications_SelectedIndexChanged);
+            // 
+            // bsApplicationsCombo
+            // 
+            this.bsApplicationsCombo.DataSource = typeof(HeuristicLab.Services.Authentication.DataTransfer.Application);
+            // 
+            // UserManagement
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(904, 631);
+            this.Controls.Add(this.cbxApplications);
+            this.Controls.Add(this.tcMain);
+            this.Name = "UserManagement";
+            this.Text = "UserManagement";
+            this.tcMain.ResumeLayout(false);
+            this.tpApplications.ResumeLayout(false);
+            this.tpApplications.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.bsApplications)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvApplications)).EndInit();
+            this.tpUsers.ResumeLayout(false);
+            this.tcUser.ResumeLayout(false);
+            this.tabPage1.ResumeLayout(false);
+            this.tabPage1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.bsUsers)).EndInit();
+            this.tabPage2.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.dgvUserRolesAll)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.bsRoles)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvUserRoles)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.bsUserRoles)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvUsers)).EndInit();
+            this.tpRoles.ResumeLayout(false);
+            this.tcRole.ResumeLayout(false);
+            this.tabPage3.ResumeLayout(false);
+            this.tabPage3.PerformLayout();
+            this.tabPage4.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.dgvRoleUsersAll)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvRoleUsers)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.bsRoleUsers)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvRoles)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.bsApplicationsCombo)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.TabControl tcMain;
+        private System.Windows.Forms.TabPage tpApplications;
+        private System.Windows.Forms.DataGridView dgvApplications;
+        private System.Windows.Forms.BindingSource bsApplications;
+        private System.Windows.Forms.TabPage tpUsers;
+        private System.Windows.Forms.DataGridView dgvUsers;
+        private System.Windows.Forms.BindingSource bsUsers;
+        private System.Windows.Forms.TabPage tpRoles;
+        private System.Windows.Forms.DataGridView dgvRoles;
+        private System.Windows.Forms.BindingSource bsRoles;
+        private System.Windows.Forms.ComboBox cbxApplications;
+        private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn;
+        private System.Windows.Forms.DataGridViewTextBoxColumn loweredApplicationNameDataGridViewTextBoxColumn;
+        private System.Windows.Forms.DataGridViewTextBoxColumn descriptionDataGridViewTextBoxColumn;
+        private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn1;
+        private System.Windows.Forms.DataGridViewTextBoxColumn emailDataGridViewTextBoxColumn;
+        private System.Windows.Forms.DataGridViewTextBoxColumn commentDataGridViewTextBoxColumn;
+        private System.Windows.Forms.DataGridViewTextBoxColumn lastLoginDateDataGridViewTextBoxColumn;
+        private System.Windows.Forms.DataGridViewTextBoxColumn lastPasswordChangeDateDataGridViewTextBoxColumn;
+        private System.Windows.Forms.DataGridViewTextBoxColumn lastLockoutDateDataGridViewTextBoxColumn;
+        private System.Windows.Forms.DataGridViewTextBoxColumn lastActivityDateDataGridViewTextBoxColumn;
+        private System.Windows.Forms.DataGridViewCheckBoxColumn isLookedOutDataGridViewCheckBoxColumn;
+        private System.Windows.Forms.DataGridViewCheckBoxColumn isApprovedDataGridViewCheckBoxColumn;
+        private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn2;
+        private System.Windows.Forms.DataGridViewTextBoxColumn loweredRoleNameDataGridViewTextBoxColumn;
+        private System.Windows.Forms.DataGridViewTextBoxColumn descriptionDataGridViewTextBoxColumn1;
+        private System.Windows.Forms.Button btnDeleteApplication;
+        private System.Windows.Forms.TextBox descriptionTextBox;
+        private System.Windows.Forms.TextBox loweredApplicationNameTextBox;
+        private System.Windows.Forms.TextBox nameTextBox;
+        private System.Windows.Forms.Button btnNewApplication;
+        private System.Windows.Forms.Button btnUpdateApplication;
+        private System.Windows.Forms.TextBox passwordSaltTextBox;
+        private System.Windows.Forms.TextBox passwordTextBox;
+        private System.Windows.Forms.TextBox nameTextBox1;
+        private System.Windows.Forms.CheckBox isApprovedCheckBox;
+        private System.Windows.Forms.TextBox emailTextBox;
+        private System.Windows.Forms.TextBox commentTextBox;
+        private System.Windows.Forms.TextBox descriptionTextBox1;
+        private System.Windows.Forms.TextBox loweredRoleNameTextBox;
+        private System.Windows.Forms.TextBox nameTextBox2;
+        private System.Windows.Forms.Button btnUpdateRole;
+        private System.Windows.Forms.Button btnDeleteRole;
+        private System.Windows.Forms.Button btnNewRole;
+        private System.Windows.Forms.Button btnUpdateUser;
+        private System.Windows.Forms.Button btnDeleteUser;
+        private System.Windows.Forms.Button btnNewUser;
+        private System.Windows.Forms.TabControl tcUser;
+        private System.Windows.Forms.TabPage tabPage1;
+        private System.Windows.Forms.TabPage tabPage2;
+        private System.Windows.Forms.Button btnAddRoleToUser;
+        private System.Windows.Forms.Button btnRemoveRoleFromUser;
+        private System.Windows.Forms.DataGridView dgvUserRolesAll;
+        private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn4;
+        private System.Windows.Forms.DataGridView dgvUserRoles;
+        private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn3;
+        private System.Windows.Forms.BindingSource bsUserRoles;
+        private System.Windows.Forms.TabControl tcRole;
+        private System.Windows.Forms.TabPage tabPage3;
+        private System.Windows.Forms.TabPage tabPage4;
+        private System.Windows.Forms.BindingSource bsRoleUsers;
+        private System.Windows.Forms.Button btnAddUserToRole;
+        private System.Windows.Forms.Button btnRemoveUserFromRole;
+        private System.Windows.Forms.DataGridView dgvRoleUsersAll;
+        private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn6;
+        private System.Windows.Forms.DataGridView dgvRoleUsers;
+        private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn5;
+        private System.Windows.Forms.BindingSource bsApplicationsCombo;
+    }
+}
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/UserManagement.cs
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/UserManagement.cs	(revision 4789)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/UserManagement.cs	(revision 4789)
@@ -0,0 +1,261 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace HeuristicLab.Services.Authentication.TestClient2
+{
+    public partial class UserManagement : Form
+    {
+
+        private AuthenticationService auth;
+        private DataTransfer.Application currentApplication;
+
+        private DataTransfer.Application selectedApplication;
+        private DataTransfer.User selectedUser;
+        private DataTransfer.Role selectedRole;
+
+        public UserManagement()
+        {
+            InitializeComponent();
+            Initialize();
+        }
+
+        private void Initialize()
+        {
+            auth = new AuthenticationService();
+            bsApplications.DataSource = auth.GetApplications();
+            bsApplicationsCombo.DataSource = auth.GetApplications();
+            RefreshLists();
+        }
+
+        private void RefreshLists()
+        {
+            if (currentApplication != null)
+            {
+                bsRoles.DataSource = auth.GetRoles(currentApplication.Id);
+                bsUsers.DataSource = auth.GetUsers(currentApplication.Id);
+            }
+        }
+
+        private void cbxApplications_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            this.currentApplication = (HeuristicLab.Services.Authentication.DataTransfer.Application)cbxApplications.SelectedItem;
+            RefreshLists();
+        }
+
+        private void btnNewApplication_Click(object sender, EventArgs e)
+        {
+            // new
+           //DataTransfer.Application  = new DataTransfer.Application();
+            selectedApplication = (DataTransfer.Application)this.bsApplications.AddNew();
+            
+        }
+
+        private void btnDeleteApplication_Click(object sender, EventArgs e)
+        {
+            if (this.dgvApplications.SelectedRows.Count > 0)
+            {
+                selectedApplication= ( DataTransfer.Application)this.dgvApplications.SelectedRows[0].DataBoundItem;
+                if (selectedApplication != null)
+                {
+                    auth.DeleteApplication(selectedApplication.Id);
+                    RefreshLists();
+                }
+            }
+        }
+
+        private void btnUpdateApplication_Click(object sender, EventArgs e)
+        {
+           
+                if (selectedApplication != null)
+                {
+                    if (selectedApplication.Id.Equals(Guid.Empty))
+                    {
+                        // insert
+                        selectedApplication.Id = Guid.NewGuid();
+                        auth.InsertApplication(selectedApplication);
+                    }
+                    else
+                    {
+                        // update
+                        auth.UpdateApplication(selectedApplication);
+                    }
+                }
+            
+            
+        }
+
+        private void dgvApplications_SelectionChanged(object sender, EventArgs e)
+        {
+            if (dgvApplications.SelectedRows.Count > 0)
+            {
+                selectedApplication = (DataTransfer.Application)dgvApplications.SelectedRows[0].DataBoundItem;
+            }
+        }
+
+        private void dgvUsers_SelectionChanged(object sender, EventArgs e)
+        {
+            if (dgvUsers.SelectedRows.Count > 0)
+            {
+                selectedUser = (DataTransfer.User)dgvUsers.SelectedRows[0].DataBoundItem;
+                RefreshUserRolesList();
+            }
+        }
+
+        private void dgvRoles_SelectionChanged(object sender, EventArgs e)
+        {
+            if (dgvRoles.SelectedRows.Count > 0)
+            {
+                selectedRole = (DataTransfer.Role)dgvRoles.SelectedRows[0].DataBoundItem;
+                RefreshRoleUsersList();
+            }
+        }
+
+        private void btnUpdateRole_Click(object sender, EventArgs e)
+        {
+            if (selectedRole != null)
+            {
+                if (selectedRole.Id.Equals(Guid.Empty))
+                {
+                    // insert
+                    selectedRole.Id = Guid.NewGuid();
+                    selectedRole.ApplicationId = currentApplication.Id;
+
+                    auth.InsertRole(selectedRole);
+                }
+                else
+                {
+                    // update
+                    auth.UpdateRole(selectedRole);
+                }
+            }
+        }
+
+        private void btnNewRole_Click(object sender, EventArgs e)
+        {
+            selectedRole = (DataTransfer.Role)this.bsRoles.AddNew();
+        }
+
+        private void btnDeleteRole_Click(object sender, EventArgs e)
+        {
+            if (this.dgvRoles.SelectedRows.Count > 0)
+            {
+                selectedRole = (DataTransfer.Role)this.dgvRoles.SelectedRows[0].DataBoundItem;
+                if (selectedRole != null)
+                {
+                    auth.DeleteRole(selectedRole.Id);
+                    RefreshLists();
+                }
+            }
+        }
+
+        private void btnNewUser_Click(object sender, EventArgs e)
+        {
+            selectedUser = (DataTransfer.User)this.bsUsers.AddNew();
+        }
+
+        private void btnDeleteUser_Click(object sender, EventArgs e)
+        {
+            if (this.dgvUsers.SelectedRows.Count > 0)
+            {
+                selectedUser = (DataTransfer.User)this.dgvUsers.SelectedRows[0].DataBoundItem;
+                if (selectedUser != null)
+                {
+                    auth.DeleteUser(selectedUser.Id);
+                    RefreshLists();
+                }
+            }
+        }
+
+        private void btnUpdateUser_Click(object sender, EventArgs e)
+        {
+            if (selectedUser != null)
+            {
+                if (selectedUser.Id.Equals(Guid.Empty))
+                {
+                    // insert
+                    selectedUser.Id = Guid.NewGuid();
+                    selectedUser.ApplicationId = currentApplication.Id;
+
+                    auth.InsertUser(selectedUser);
+                }
+                else
+                {
+                    // update
+                    auth.UpdateUser(selectedUser);
+                }
+            }
+        }
+
+        private void btnRemoveRoleFromUser_Click(object sender, EventArgs e)
+        {
+            if (this.dgvUserRoles.SelectedRows.Count > 0)
+            {
+
+                DataTransfer.Role role = (DataTransfer.Role)this.dgvUserRoles.SelectedRows[0].DataBoundItem;
+                if (role != null)
+                {
+                    auth.RemoveUserFromRole(role.Id, selectedUser.Id);
+                    RefreshUserRolesList();
+                }
+            }
+        }
+
+        private void btnAddRoleToUser_Click(object sender, EventArgs e)
+        {
+            if (this.dgvUserRolesAll.SelectedRows.Count > 0)
+            {
+                DataTransfer.Role role = (DataTransfer.Role)this.dgvUserRolesAll.SelectedRows[0].DataBoundItem;
+                if (role != null)
+                {
+                    auth.AddUserToRole( role.Id,selectedUser.Id);
+                    RefreshUserRolesList();
+                }
+            }
+        }
+
+        private void RefreshUserRolesList()
+        {
+            bsUserRoles.DataSource = auth.GetRolesForUser(selectedUser.Id);
+        }
+
+        private void RefreshRoleUsersList()
+        {
+            bsRoleUsers.DataSource = auth.GetUsersInRole(selectedRole.Id);
+        }
+
+        private void btnRemoveUserFromRole_Click(object sender, EventArgs e)
+        {
+            if (this.dgvRoleUsers.SelectedRows.Count > 0)
+            {
+
+                DataTransfer.User user = (DataTransfer.User)this.dgvRoleUsers.SelectedRows[0].DataBoundItem;
+                if (user != null)
+                {
+                    auth.RemoveUserFromRole(selectedRole.Id, user.Id);
+                    RefreshRoleUsersList();
+                }
+            }
+        }
+
+        private void btnAddUserToRole_Click(object sender, EventArgs e)
+        {
+            if (this.dgvRoleUsersAll.SelectedRows.Count > 0)
+            {
+                DataTransfer.User user = (DataTransfer.User)this.dgvRoleUsersAll.SelectedRows[0].DataBoundItem;
+                if (user != null)
+                {
+                    auth.AddUserToRole(selectedRole.Id, user.Id);
+                    RefreshRoleUsersList();
+                }
+            }
+        }
+
+  
+    }
+}
Index: /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/UserManagement.resx
===================================================================
--- /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/UserManagement.resx	(revision 4789)
+++ /branches/UserManagement/HeuristicLab.Services.Authentication.TestClient2/UserManagement.resx	(revision 4789)
@@ -0,0 +1,174 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="descriptionLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+  <metadata name="loweredApplicationNameLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+  <metadata name="nameLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+  <metadata name="commentLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+  <metadata name="emailLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+  <metadata name="isApprovedLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+  <metadata name="nameLabel1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+  <metadata name="passwordLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+  <metadata name="passwordSaltLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+  <metadata name="nameLabel2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+  <metadata name="loweredRoleNameLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+  <metadata name="descriptionLabel1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+  <metadata name="bsApplications.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>188, 17</value>
+  </metadata>
+  <metadata name="bsUsers.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>319, 17</value>
+  </metadata>
+  <metadata name="bsRoles.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>413, 17</value>
+  </metadata>
+  <metadata name="bsUserRoles.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>506, 17</value>
+  </metadata>
+  <metadata name="bsRoleUsers.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>624, 17</value>
+  </metadata>
+  <metadata name="bsApplicationsCombo.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+</root>
