ソースを参照

2006-11-09 Yoni Klain <[email protected]>
* add new application for Web site administration
* new dir Mainsoft.Web.Administration

svn path=/trunk/mcs/; revision=67592

Yoni Klain 19 年 前
コミット
1ca14eeea0
75 ファイル変更3460 行追加0 行削除
  1. 4 0
      mcs/class/System.Web/Test/mainsoft/ChangeLog
  2. 20 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration.sln
  3. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration.suo
  4. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_Data/ASPNETDB.MDF
  5. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_Data/aspnetdb_log.ldf
  6. 82 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_GlobalResources/GlobalResource.Designer.cs
  7. 127 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_GlobalResources/GlobalResource.resx
  8. 129 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/CreateRole.aspx.resx
  9. 126 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/CreateUser.aspx.resx
  10. 123 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/Default.aspx.resx
  11. 135 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/EditUser.aspx.resx
  12. 132 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/ManageRole.aspx.resx
  13. 133 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/ManageUser.aspx.resx
  14. 120 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/Util.Master.resx
  15. 34 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Controls/Searcher.ascx
  16. 54 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Controls/Searcher.ascx.cs
  17. 16 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Controls/Searcher.ascx.designer.cs
  18. 119 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/CreateRole.aspx
  19. 99 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/CreateRole.aspx.cs
  20. 25 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/CreateRole.aspx.designer.cs
  21. 78 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/CreateUser.aspx
  22. 81 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/CreateUser.aspx.cs
  23. 21 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/CreateUser.aspx.designer.cs
  24. 85 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Default.aspx
  25. 64 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Default.aspx.cs
  26. 18 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Default.aspx.designer.cs
  27. 114 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/EditUser.aspx
  28. 84 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/EditUser.aspx.cs
  29. 27 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/EditUser.aspx.designer.cs
  30. 31 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Error.aspx
  31. 21 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Error.aspx.cs
  32. 16 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Error.aspx.designer.cs
  33. 44 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/GridButton.cs
  34. 56 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/GridCheckBox.cs
  35. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Images/mainsoft.jpg
  36. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Images/untitled.bmp
  37. 175 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Mainsoft.Web.Administration.csproj
  38. 33 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Mainsoft.Web.Administration.csproj.user
  39. 72 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Mainsoft.Web.Administration.css
  40. 94 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/ManageRole.aspx
  41. 65 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/ManageRole.aspx.cs
  42. 22 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/ManageRole.aspx.designer.cs
  43. 140 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/ManageUser.aspx
  44. 115 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/ManageUser.aspx.cs
  45. 27 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/ManageUser.aspx.designer.cs
  46. 35 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Properties/AssemblyInfo.cs
  47. 290 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/RolesDS.cs
  48. 56 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Util.Master
  49. 40 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Util.Master.cs
  50. 20 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Util.Master.designer.cs
  51. 12 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Web.sitemap
  52. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/bin/ConfigutationUtil.dll
  53. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/bin/ConfigutationUtil.pdb
  54. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/bin/Mainsoft.Web.Administration.dll
  55. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/bin/Mainsoft.Web.Administration.pdb
  56. 4 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/ConfigutationUtil.csproj.FileList.txt
  57. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/ConfigutationUtil.dll
  58. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/ConfigutationUtil.pdb
  59. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/Mainsoft.Web.Administration.dll
  60. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/Mainsoft.Web.Administration.pdb
  61. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/ResolveAssemblyReference.cache
  62. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_GlobalResources.GlobalResource.Designer.cs.dll
  63. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_GlobalResources.Resource1.Designer.cs.dll
  64. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.CreateRole.aspx.Designer.cs.dll
  65. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.CreateUser.aspx.Designer.cs.dll
  66. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.Default.aspx.Designer.cs.dll
  67. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.EditUser.aspx.Designer.cs.dll
  68. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.ManageUser.aspx.Designer.cs.dll
  69. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.MenageRole.aspx.Designer.cs.dll
  70. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.Util.Master.Designer.cs.dll
  71. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.Web.Master.Designer.cs.dll
  72. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/CreateUser.aspx.designer.cs.dll
  73. BIN
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/Default.aspx.designer.cs.dll
  74. 6 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Mainsoft.Web.Administration.csproj.FileList.txt
  75. 36 0
      mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/web.config

+ 4 - 0
mcs/class/System.Web/Test/mainsoft/ChangeLog

@@ -1,3 +1,7 @@
+2006-11-09 Yoni Klain <[email protected]>
+	* add new application for Web site administration
+	* new dir Mainsoft.Web.Administration 
+
 2006-10-04 Yoni Klain <[email protected]>
 	* new resources : 
 	Test/mainsoft/NunitWebResources/PageLifecycleTest.aspx ;

+ 20 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration.sln

@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mainsoft.Web.Administration", "Mainsoft.Web.Administration\Mainsoft.Web.Administration.csproj", "{50770B55-C326-4EAD-9211-77AC47F7E32C}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{50770B55-C326-4EAD-9211-77AC47F7E32C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{50770B55-C326-4EAD-9211-77AC47F7E32C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{50770B55-C326-4EAD-9211-77AC47F7E32C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{50770B55-C326-4EAD-9211-77AC47F7E32C}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration.suo


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_Data/ASPNETDB.MDF


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_Data/aspnetdb_log.ldf


+ 82 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_GlobalResources/GlobalResource.Designer.cs

@@ -0,0 +1,82 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.42
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Resources {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Web.Application.StronglyTypedResourceProxyBuilder", "8.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class GlobalResource {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal GlobalResource() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Resources.GlobalResource", global::System.Reflection.Assembly.Load("App_GlobalResources"));
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Wildcard characters * and ? are permitted..
+        /// </summary>
+        internal static string SearchMessage {
+            get {
+                return ResourceManager.GetString("SearchMessage", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Welcome to the Web Site Administration Tool 
+        ///.
+        /// </summary>
+        internal static string WelcomeMessage {
+            get {
+                return ResourceManager.GetString("WelcomeMessage", resourceCulture);
+            }
+        }
+    }
+}

+ 127 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_GlobalResources/GlobalResource.resx

@@ -0,0 +1,127 @@
+<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="SearchMessage" xml:space="preserve">
+    <value>Wildcard characters * and ? are permitted.</value>
+  </data>
+  <data name="WelcomeMessage" xml:space="preserve">
+    <value>Welcome to the Web Site Administration Tool 
+</value>
+  </data>
+</root>

+ 129 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/CreateRole.aspx.resx

@@ -0,0 +1,129 @@
+<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="CreateRoleText" xml:space="preserve">
+    <value>You can optionally add roles, or groups, that enable you to allow or deny groups of users access to specific folders in your Web site. For example, you might create roles such as "managers," "sales," or "members," each with different access to specific folders. </value>
+  </data>
+  <data name="newrolelabel" xml:space="preserve">
+    <value>Create New Role</value>
+  </data>
+  <data name="rolenamelabel" xml:space="preserve">
+    <value>New role name: </value>
+  </data>
+</root>

+ 126 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/CreateUser.aspx.resx

@@ -0,0 +1,126 @@
+<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ActiveUserLabel" xml:space="preserve">
+    <value>Active User</value>
+  </data>
+  <data name="CreateUserText" xml:space="preserve">
+    <value>Add a user by entering a user name, password, and e-mail address on this page.</value>
+  </data>
+</root>

+ 123 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/Default.aspx.resx

@@ -0,0 +1,123 @@
+<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="EnterText" xml:space="preserve">
+    <value>You can use the Web Site Administration Tool to manage all the security settings for your application. You can set up users and passwords (authentication), create roles (groups of users), and create permissions (rules for controlling access to parts of your application).</value>
+  </data>
+</root>

+ 135 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/EditUser.aspx.resx

@@ -0,0 +1,135 @@
+<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="editUserText" xml:space="preserve">
+    <value>Use this page to edit user information and to specify what roles a user belongs in. </value>
+  </data>
+  <data name="Rolelbl" xml:space="preserve">
+    <value>Roles</value>
+  </data>
+  <data name="Successlbl" xml:space="preserve">
+    <value>You have successfully updated the user</value>
+  </data>
+  <data name="successUpdatelbl" xml:space="preserve">
+    <value>You have successfully updated the user </value>
+  </data>
+  <data name="Userlbl" xml:space="preserve">
+    <value>User</value>
+  </data>
+</root>

+ 132 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/ManageRole.aspx.resx

@@ -0,0 +1,132 @@
+<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="menageRoleText" xml:space="preserve">
+    <value>Use this page to manage the members in the specified role. To add a user to the role, search for the user name and then select the User Is In Role check box for that user. </value>
+  </data>
+  <data name="roleNameLabel" xml:space="preserve">
+    <value>Role:</value>
+  </data>
+  <data name="searchBylbl" xml:space="preserve">
+    <value>Search by :</value>
+  </data>
+  <data name="searchUserlbl" xml:space="preserve">
+    <value>Search for Users</value>
+  </data>
+</root>

+ 133 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/ManageUser.aspx.resx

@@ -0,0 +1,133 @@
+<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="manageUserText" xml:space="preserve">
+    <value>Click Edit User to view or change the user's password or other properties. To assign roles to the selected user, select the appropriate check boxes on the right. To prevent users from logging in to your application while retaining their information in your database, set the status to inactive by clearing the check box. 
+</value>
+  </data>
+  <data name="roleslbl" xml:space="preserve">
+    <value>Roles</value>
+  </data>
+  <data name="searchBylbl" xml:space="preserve">
+    <value>Search by :</value>
+  </data>
+  <data name="searchUserlbl" xml:space="preserve">
+    <value>Search for Users</value>
+  </data>
+</root>

+ 120 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/App_LocalResources/Util.Master.resx

@@ -0,0 +1,120 @@
+<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

+ 34 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Controls/Searcher.ascx

@@ -0,0 +1,34 @@
+<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Searcher.ascx.cs" Inherits="Mainsoft.Web.Administration.Searcher" %>
+<%@ Register tagprefix="custom" namespace="Mainsoft.Web.Administration" Assembly="Mainsoft.Web.Administration"  %>
+
+<table width="100%" cellpadding="0" cellspacing="0">
+    <tr>
+    <td width="100%" class="controlheader">
+           Edit roles:
+    </td>
+    </tr>
+    <tr>
+        <td width= "100%" >
+            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
+                ForeColor="#333333" GridLines="None" Width="100%">
+                <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
+                <Columns>
+                    <asp:TemplateField HeaderText="Edit roles">
+                        <ItemTemplate>
+                            <asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="True" Checked='<%# Bind("IsInRole") %>'
+                                OnCheckedChanged="Roles_Changed" Text='<%# Bind("Role") %>' />
+                        </ItemTemplate>
+                        <HeaderTemplate>
+                            Edit roles for user : <%# User %>
+                        </HeaderTemplate>
+                    </asp:TemplateField>
+                </Columns>
+                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
+                <EditRowStyle BackColor="#999999" />
+                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
+                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
+                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
+            </asp:GridView>
+        </td>        
+    </tr>
+</table>

+ 54 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Controls/Searcher.ascx.cs

@@ -0,0 +1,54 @@
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+namespace Mainsoft.Web.Administration
+{
+    public partial class Searcher : System.Web.UI.UserControl
+    {
+        public string User
+        {
+            get { return ViewState["User"] == null ? String.Empty : (string)ViewState["User"];}
+            set { ViewState["User"] = value; }
+        }
+
+        protected void Page_Load(object sender, EventArgs e)
+        {
+
+        }
+
+        protected override void OnPreRender(EventArgs e)
+        {
+            if (User == String.Empty || (Membership.GetUser(User)==null))
+            {
+                GridView1.DataSource = null;
+            }
+            else
+            {
+                GridView1.DataSource = RolesDS.SelectUsersRole(User);
+            }
+            GridView1.DataBind();
+            base.OnPreRender(e);
+        }
+
+        protected void Roles_Changed(object sender, EventArgs e)
+        {
+            String user_name = (string)ViewState["User"];
+            if (((CheckBox)sender).Checked)
+            {
+                Roles.AddUserToRole(user_name, ((CheckBox)sender).Text);
+            }
+            else
+            {
+                Roles.RemoveUserFromRole(user_name, ((CheckBox)sender).Text);
+            }
+        }
+    }
+}

+ 16 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Controls/Searcher.ascx.designer.cs

@@ -0,0 +1,16 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.42
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Mainsoft.Web.Administration {
+    
+    public partial class Searcher {
+        protected System.Web.UI.WebControls.GridView GridView1;
+    }
+}

+ 119 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/CreateRole.aspx

@@ -0,0 +1,119 @@
+<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Util.Master" CodeBehind="CreateRole.aspx.cs" Inherits="Mainsoft.Web.Administration.CreateRole" %>
+<%@ Register TagPrefix="custom" Assembly="Mainsoft.Web.Administration" Namespace="Mainsoft.Web.Administration" %>
+
+<asp:Content ID="Main" ContentPlaceHolderID="Main" runat="server">
+<!--
+// Mainsoft.Web.Administration - Site administration utility
+// Authors:
+//  Klain Yoni <[email protected]>
+//
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
+
+    <asp:MultiView runat="server" ID="mv" ActiveViewIndex="0">
+    <asp:View runat="server" id="grid">
+    <table class="maintable">
+        <tr>
+            <td colspan="2" width="100%" style="height: 21px">
+                You can optionally add roles, or groups, that enable you to allow or deny groups of users access to specific folders in your Web site. For example, you might create roles such as "managers," "sales," or "members," each with different access to specific folders.  <br /> <br />
+            </td>
+        </tr>
+        <tr>
+            <td width= "100%" valign="top">
+                <table width="100%" class="innertable" >
+                    <tr>
+                        <td width="100%" class="controlheader">
+                            Create New Role
+                        </td>
+                    </tr>
+                    <tr>
+                        <td>
+                            New role name:  &nbsp; &nbsp; 
+                            <asp:TextBox ID="roleName_txb" runat="server" /> &nbsp; &nbsp;
+                            <asp:Button  ID="roleName_bt"  runat="server" Text="Add role" OnClick="roleName_bt_Click" />
+                        </td>
+                    </tr>
+                    <tr>
+                        <td>
+                            <asp:Label ID="error_lb" runat="server" ForeColor="Red" />
+                            <br /> <br />
+                        </td>
+                    </tr>
+                </table>
+            </td> 
+        </tr>
+        <tr>
+            <td width= "100%" valign="top" datakeynames="Role;">
+                <asp:GridView ID="Roles_gv" runat="server" CellPadding="4" DataSourceID="ObjectDataSource1" ForeColor="#333333" GridLines="None" Width="100%" AutoGenerateColumns="False" DataKeyNames="Role">
+                    <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
+                    <Columns>
+                        <asp:BoundField DataField="Role" HeaderText="Role Name" >
+                            <HeaderStyle HorizontalAlign="Left" />
+                        </asp:BoundField>
+                        <asp:HyperLinkField DataNavigateUrlFields="Role" DataNavigateUrlFormatString="~/ManageRole.aspx?Role={0}"
+                            HeaderText="Add\Remove Role" Text="Manage" >
+                            <HeaderStyle HorizontalAlign="Left" />
+                        </asp:HyperLinkField>
+                        <asp:TemplateField>
+                            <ItemTemplate>
+                                  <custom:GridButton ID="grid_btn" runat="server" User='<%# Bind("Role") %>' OnClick="gridbtn_click"  >Delete</custom:GridButton>
+                            </ItemTemplate>
+                        </asp:TemplateField>
+                    </Columns>
+                    <RowStyle BackColor="#EFF3FB" />
+                    <EditRowStyle BackColor="#2461BF" />
+                    <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
+                    <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
+                    <HeaderStyle BackColor="#5D7B9D" BorderStyle="Solid" Font-Bold="True" Font-Size="0.9em"
+                        ForeColor="White" HorizontalAlign="Center" />
+                    <AlternatingRowStyle BackColor="White" />
+                </asp:GridView>
+                <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="Delete"
+                    SelectMethod="Select" TypeName="Mainsoft.Web.Administration.RolesDS">
+                    <DeleteParameters>
+                        <asp:Parameter Name="Role" Type="String" />
+                    </DeleteParameters>
+                </asp:ObjectDataSource>
+            </td>
+        </tr>
+    </table>
+    </asp:View>
+    <asp:View runat="server" ID="yesno" >
+    <table class="innertable" width="60%">
+        <tr>
+            <td style="height: 80px" valign="top">
+                <br />
+                <img src="Images/untitled.bmp" /> &nbsp;
+                    Are you sure you want to delete the role: "<%= Role %>"?
+                <br />
+            </td>
+        </tr>
+        <tr>
+            <td align="right" style="background-color:inactivecaptiontext" >
+                <asp:Button ID="yes" runat="server" Text="Yes" style="width:50px" OnClick="Click_Yes" />
+                <asp:Button ID="no" runat="server" Text="No" style="width:50px" OnClick="Click_No" />
+            </td>
+        </tr>
+    </table>
+    </asp:View>
+    </asp:MultiView>
+ </asp:Content>
+   

+ 99 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/CreateRole.aspx.cs

@@ -0,0 +1,99 @@
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+using System.Threading;
+using System.Text;
+
+namespace Mainsoft.Web.Administration
+{
+	public partial class CreateRole : System.Web.UI.Page
+	{
+		public string Role
+		{
+			get { return ViewState["Role"] == null ? String.Empty : (string) ViewState["Role"]; }
+			set { ViewState["Role"] = value; }
+		}
+
+
+		protected override void OnPreRender (EventArgs e)
+		{
+			if (mv.ActiveViewIndex == 1) {
+				((Button) Master.FindControl ("Back")).Visible = false;
+			}
+			else {
+				((Button) Master.FindControl ("Back")).Visible = true;
+			}
+
+			base.OnPreRender (e);
+			Roles_gv.DataBind ();
+		}
+
+		protected void Page_Load (object sender, EventArgs e)
+		{
+
+		}
+
+		protected void gridbtn_click (object sender, EventArgs e)
+		{
+			Role = ((GridButton) sender).User;
+			mv.ActiveViewIndex = 1;
+		}
+
+		protected void roleName_bt_Click (object sender, EventArgs e)
+		{
+			if (roleName_txb.Text != "") {
+				try {
+					Roles.CreateRole (roleName_txb.Text);
+					error_lb.Text = "";
+				}
+				catch (Exception ex) {
+					error_lb.Text = ex.Message;
+				}
+				finally {
+				}
+			}
+			else {
+				error_lb.Text = "Role name cannot be empty!";
+			}
+		}
+
+		protected void Click_No (object sender, EventArgs e)
+		{
+			mv.ActiveViewIndex = 0;
+		}
+
+		protected void Click_Yes (object sender, EventArgs e)
+		{
+			RolesDS.Delete (Role);
+			mv.ActiveViewIndex = 0;
+		}
+	}
+}

+ 25 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/CreateRole.aspx.designer.cs

@@ -0,0 +1,25 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.42
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Mainsoft.Web.Administration {
+    
+    public partial class CreateRole {
+        protected System.Web.UI.WebControls.MultiView mv;
+        protected System.Web.UI.WebControls.View grid;
+        protected System.Web.UI.WebControls.TextBox roleName_txb;
+        protected System.Web.UI.WebControls.Button roleName_bt;
+        protected System.Web.UI.WebControls.Label error_lb;
+        protected System.Web.UI.WebControls.GridView Roles_gv;
+        protected System.Web.UI.WebControls.ObjectDataSource ObjectDataSource1;
+        protected System.Web.UI.WebControls.View yesno;
+        protected System.Web.UI.WebControls.Button yes;
+        protected System.Web.UI.WebControls.Button no;
+    }
+}

+ 78 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/CreateUser.aspx

@@ -0,0 +1,78 @@
+<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Util.Master" CodeBehind="CreateUser.aspx.cs" Inherits="Mainsoft.Web.Administration.CreateUser" %>
+<asp:Content runat="server" ID="main" ContentPlaceHolderID="Main">
+<!--
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
+    
+    <table style="border-right: thin solid; padding-right: 2px; border-top: thin solid; padding-left: 2px; padding-bottom: 2px; border-left: thin solid; padding-top: 2px; border-bottom: thin solid">
+        <tr>
+            <td colspan="2" width="100%" style="height: 21px">
+                <asp:Label ID="text_lbl" runat="server" Text="Add a user by entering a user name, password, and e-mail address on this page." />
+            </td>
+        </tr>
+        <tr>
+            <td width= "60%" valign="top">
+                    <asp:CreateUserWizard ID="CreateUserWizard1" runat="server" BackColor="#F7F6F3"
+                    BorderColor="#E6E2D8" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana"
+                    Font-Size="0.8em" Width="353px" ContinueDestinationPageUrl="~/CreateUser.aspx" FinishDestinationPageUrl="~/CreateUser.aspx">
+                    <WizardSteps>
+                        <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
+                        </asp:CreateUserWizardStep>
+                        <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">
+                        </asp:CompleteWizardStep>
+                    </WizardSteps>
+                    <SideBarStyle BackColor="#5D7B9D" BorderWidth="0px" Font-Size="0.9em" VerticalAlign="Top" />
+                    <TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
+                    <SideBarButtonStyle BorderWidth="0px" Font-Names="Verdana" ForeColor="White" />
+                    <NavigationButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid"
+                        BorderWidth="1px" Font-Names="Verdana" ForeColor="#284775" />
+                    <HeaderStyle BackColor="#5D7B9D" BorderStyle="Solid" Font-Bold="True" Font-Size="0.9em"
+                        ForeColor="White" HorizontalAlign="Center" />
+                    <CreateUserButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid"
+                        BorderWidth="1px" Font-Names="Verdana" ForeColor="#284775" />
+                    <ContinueButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid"
+                        BorderWidth="1px" Font-Names="Verdana" ForeColor="#284775" />
+                    <StepStyle BorderWidth="0px" />
+                </asp:CreateUserWizard>
+            </td>
+            <td width= "60%" valign="top">
+                <table width="100%" style="background-color: #f7f6f3; border-right: #e6e2d8 1px solid; border-top: #e6e2d8 1px solid; border-left: #e6e2d8 1px solid; border-bottom: #e6e2d8 1px solid;" >
+                    <tr>
+                        <td width="100%" style="text-align: center; background-color: #5D7B9D; font-weight:bold; font-size:0.9em; color:White;text-align:center; height: 19px;">
+                           Roles
+                        </td>
+                    </tr>
+                    <tr>
+                        <td valign="top">
+                            &nbsp;<asp:CheckBoxList ID="roles_lst" runat="server">
+                            </asp:CheckBoxList></td>
+                    </tr>
+                </table>
+            </td> 
+        </tr>
+        <tr>
+            <td colspan="2">
+                Active User
+                <asp:CheckBox ID="active_chb" runat="server" Checked="true" Enabled="true" />                
+            </td>
+        </tr>
+    </table>
+</asp:Content>

+ 81 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/CreateUser.aspx.cs

@@ -0,0 +1,81 @@
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+namespace Mainsoft.Web.Administration
+{
+	public partial class CreateUser : System.Web.UI.Page
+	{
+		protected override void OnPreRender (EventArgs e)
+		{
+			roles_lst.DataBind ();
+			base.OnPreRender (e);
+			if (CreateUserWizard1.ActiveStepIndex != 0) {
+				text_lbl.Visible = false;
+				((Button) Master.FindControl ("Back")).Visible = false;
+				active_chb.Enabled = false;
+			}
+		}
+
+		protected void Page_Load (object sender, EventArgs e)
+		{
+			if (!IsPostBack) {
+				roles_lst.DataValueField = "Role";
+				roles_lst.DataSource = RolesDS.Select ();
+			}
+			CreateUserWizard1.CreatingUser += new LoginCancelEventHandler (CreateUserWizard1_CreatingUser);
+			CreateUserWizard1.CreatedUser += new EventHandler (CreateUserWizard1_CreatedUser);
+		}
+
+		public void CreateUserWizard1_CreatedUser (object sender, EventArgs e)
+		{
+			MembershipUser user = Membership.GetUser (((CreateUserWizard) sender).UserName);
+			user.IsApproved = active_chb.Checked;
+			roles_lst.Enabled = false;
+		}
+
+		public void CreateUserWizard1_CreatingUser (object sender, LoginCancelEventArgs e)
+		{
+			int i = 0;
+			while (i < roles_lst.Items.Count) {
+				if (roles_lst.Items[i].Selected) {
+					try {
+						Roles.AddUserToRole (((CreateUserWizard) sender).UserName, roles_lst.Items[i].Text);
+					}
+					catch (Exception ex) {
+						((CreateUserWizard) sender).UnknownErrorMessage = ex.Message;
+					}
+				}
+				i++;
+			}
+		}
+	}
+}

+ 21 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/CreateUser.aspx.designer.cs

@@ -0,0 +1,21 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.42
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Mainsoft.Web.Administration {
+    
+    public partial class CreateUser {
+        protected System.Web.UI.WebControls.Label text_lbl;
+        protected System.Web.UI.WebControls.CreateUserWizard CreateUserWizard1;
+        protected System.Web.UI.WebControls.CreateUserWizardStep CreateUserWizardStep1;
+        protected System.Web.UI.WebControls.CompleteWizardStep CompleteWizardStep1;
+        protected System.Web.UI.WebControls.CheckBoxList roles_lst;
+        protected System.Web.UI.WebControls.CheckBox active_chb;
+    }
+}

+ 85 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Default.aspx

@@ -0,0 +1,85 @@
+<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Util.Master" CodeBehind="Default.aspx.cs" Inherits="Mainsoft.Web.Administration.Default" %>
+<asp:Content runat="server" ContentPlaceHolderID="Main">
+<!--
+// Mainsoft.Web.Administration - Site administration utility
+// Authors:
+//  Klain Yoni <[email protected]>
+//
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->    
+    <table>
+        <tr>
+            <td>
+                You can use the Web Site Administration Tool to manage all the security settings for your application. You can set up users and passwords (authentication), create roles (groups of users), and create permissions (rules for controlling access to parts of your application).
+                <br /><br /><br />
+            </td>
+        </tr>
+        <tr>
+            <td>
+                <table class="innertable" width="70%" >
+                    <tr>
+                        <td class="controlheader">
+                            Users
+                        </td>
+                    </tr>
+                    <tr>
+                        <td>
+                            Created users : <%= User_count %>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td>
+                            <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/CreateUser.aspx">Create user</asp:HyperLink>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td>
+                            <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="~/ManageUser.aspx">Manage users</asp:HyperLink>
+                        </td>
+                    </tr>
+                </table> 
+                <br /><br /><br />
+            </td>
+        </tr>
+        <tr>
+            <td>
+                <table class="innertable" width="70%">
+                    <tr>
+                        <td class="controlheader">
+                            Roles 
+                        </td>
+                    </tr>
+                    <tr>
+                        <td>
+                            Existing roles : <%= Roles_count %>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td>
+                            <asp:HyperLink ID="HyperLink3" runat="server" NavigateUrl="~/CreateRole.aspx">Create or manage roles</asp:HyperLink>
+                        </td>
+                    </tr>
+                </table>
+                <br /><br /><br />
+            </td>
+        </tr>
+    </table>
+</asp:Content>

+ 64 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Default.aspx.cs

@@ -0,0 +1,64 @@
+// Mainsoft.Web.Administration - Site administration utility
+// Authors:
+//  Klain Yoni <[email protected]>
+//
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+namespace Mainsoft.Web.Administration
+{
+	public partial class Default : System.Web.UI.Page
+	{
+		protected void Page_Load (object sender, EventArgs e)
+		{
+
+		}
+
+		public string User_count
+		{
+			get
+			{
+				MembershipUserCollection user_collection = Membership.GetAllUsers ();
+				return user_collection.Count.ToString ();
+			}
+		}
+
+		public string Roles_count
+		{
+			get
+			{
+				string[] list = Roles.GetAllRoles ();
+				return list.Length.ToString ();
+			}
+		}
+	}
+}

+ 18 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Default.aspx.designer.cs

@@ -0,0 +1,18 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.42
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Mainsoft.Web.Administration {
+    
+    public partial class Default {
+        protected System.Web.UI.WebControls.HyperLink HyperLink1;
+        protected System.Web.UI.WebControls.HyperLink HyperLink2;
+        protected System.Web.UI.WebControls.HyperLink HyperLink3;
+    }
+}

+ 114 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/EditUser.aspx

@@ -0,0 +1,114 @@
+<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Util.Master" CodeBehind="EditUser.aspx.cs" Inherits="Mainsoft.Web.Administration.EditUser" %>
+<%@ Register TagPrefix="custom" TagName="searcher" Src="~/Controls/Searcher.ascx" %>
+<asp:Content runat="server" ID="main" ContentPlaceHolderID="Main">
+<!--
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
+    <asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
+        <asp:View ID="updateUser" runat="server" >
+        <div>
+        <table width="100%" class="maintable">
+            <tr>
+                <td colspan="2" width="100%" style="height: 21px">
+                    Use this page to edit user information and to specify what roles a user belongs in. 
+                     <br /> <br /> <br /> 
+                </td>
+            </tr>
+            <tr>
+                <td width="70%" class="innertable" align="left" valign="top">
+                    <table width="100%" cellpadding="0" cellspacing="0">
+                        <tr>
+                            <td width="100%" class="controlheader" colspan="3">
+                                User
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                User ID:
+                            </td>
+                            <td>
+                                <asp:TextBox ID="userid_txb" runat="server" Enabled="false" />
+                            </td>
+                            <td>
+                                &nbsp;
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                               <span style="font-size: 20px; color: red">*</span> E-mail address: 
+                            </td>
+                            <td>
+                                <asp:TextBox ID="email_txb" runat="server"></asp:TextBox>
+                                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="email_txb" runat="server" ErrorMessage="*" />
+                            </td>
+                            <td>
+                                <asp:CheckBox ID="active_chb" runat="server" /> Active user
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                Description:
+                            </td>
+                            <td>
+                                <asp:TextBox ID="desc_txb" runat="server">[not set]</asp:TextBox>
+                            </td>
+                            <td>
+                                <asp:Button ID="save_bt" runat="server" Text="Save" OnClick="save_bt_Click" />
+                            </td>
+                        </tr>
+                    </table>
+                </td>
+                <td width="30%" class="innertable" >
+                    <custom:searcher ID="srch" runat="server" />
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2">
+                    (<span style="font-size: 20px; color: red">*</span>)Required field  
+                </td>
+            </tr>
+        </table>
+        </div>
+        </asp:View>
+        <asp:View ID="successupdate" runat="server">
+            <div>
+            <table width="100%" class="maintable">
+            <tr>
+                <td width="100%" class="controlheader">
+                    User Management
+                </td>
+            </tr>
+            <tr>
+                <td width="100%" style="height: 100px" valign="top" align="left">
+                    You have successfully updated the user
+                    <asp:Label ID="name_lbl" runat="server" /> <br /> <br /> <br />
+                </td>
+            </tr>
+            <tr>
+                <td width="100%" align="right">
+                    <asp:Button ID="success_btn" runat="server" Width="50px" Text="OK" OnClick="success_btn_Click" />
+                </td>
+            </tr>
+            </table>
+            </div>
+        </asp:View>
+    </asp:MultiView>
+</asp:Content>

+ 84 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/EditUser.aspx.cs

@@ -0,0 +1,84 @@
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+namespace Mainsoft.Web.Administration
+{
+	public partial class EditUser : System.Web.UI.Page
+	{
+		String user_name;
+		protected void Page_Load (object sender, EventArgs e)
+		{
+			user_name = Request.QueryString["User"];
+			srch.User = user_name;
+			if (MultiView1.ActiveViewIndex == 0) {
+				FillUserData (user_name);
+				name_lbl.Text = user_name;
+			}
+		}
+
+		void FillUserData (string user_name)
+		{
+			if (MultiView1.ActiveViewIndex == 0) {
+				MembershipUser user = Membership.GetUser (user_name);
+				userid_txb.Text = user.UserName;
+				email_txb.Text = user.Email;
+				active_chb.Checked = user.IsApproved;
+				if (user.Comment == string.Empty) {
+					desc_txb.Text = user.Comment;
+				}
+			}
+		}
+
+		protected void roles_lst_DataBound (object sender, EventArgs e)
+		{
+			foreach (ListItem item in ((CheckBoxList) sender).Items) {
+				item.Selected = Boolean.Parse (item.Value);
+			}
+		}
+
+		protected void save_bt_Click (object sender, EventArgs e)
+		{
+			MembershipUser user = Membership.GetUser (user_name);
+			user.IsApproved = active_chb.Checked;
+			user.Email = email_txb.Text;
+			user.Comment = desc_txb.Text;
+			Membership.UpdateUser (user);
+			MultiView1.ActiveViewIndex = 1;
+		}
+
+		protected void success_btn_Click (object sender, EventArgs e)
+		{
+			Server.Transfer ("~/ManageUser.aspx");
+		}
+
+	}
+}

+ 27 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/EditUser.aspx.designer.cs

@@ -0,0 +1,27 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.42
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Mainsoft.Web.Administration {
+    
+    public partial class EditUser {
+        protected System.Web.UI.WebControls.MultiView MultiView1;
+        protected System.Web.UI.WebControls.View updateUser;
+        protected System.Web.UI.WebControls.TextBox userid_txb;
+        protected System.Web.UI.WebControls.TextBox email_txb;
+        protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
+        protected System.Web.UI.WebControls.CheckBox active_chb;
+        protected System.Web.UI.WebControls.TextBox desc_txb;
+        protected System.Web.UI.WebControls.Button save_bt;
+        protected Mainsoft.Web.Administration.Searcher srch;
+        protected System.Web.UI.WebControls.View successupdate;
+        protected System.Web.UI.WebControls.Label name_lbl;
+        protected System.Web.UI.WebControls.Button success_btn;
+    }
+}

+ 31 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Error.aspx

@@ -0,0 +1,31 @@
+<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Util.Master" CodeBehind="Error.aspx.cs" Inherits="Mainsoft.Web.Administration.Error" %>
+<asp:Content runat="server" ID="main" ContentPlaceHolderID="Main">
+<!--
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
+
+    <div style="font-weight: bold; font-size: 20pt; color: red">
+        Error occured on this request ! Please try again !
+    </div>
+    <div>
+        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default.aspx">Administration utility home page</asp:HyperLink>
+    </div>
+</asp:Content>

+ 21 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Error.aspx.cs

@@ -0,0 +1,21 @@
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+namespace Mainsoft.Web.Administration
+{
+    public partial class Error : System.Web.UI.Page
+    {
+        protected void Page_Load(object sender, EventArgs e)
+        {
+
+        }
+    }
+}

+ 16 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Error.aspx.designer.cs

@@ -0,0 +1,16 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.42
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Mainsoft.Web.Administration {
+    
+    public partial class Error {
+        protected System.Web.UI.WebControls.HyperLink HyperLink1;
+    }
+}

+ 44 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/GridButton.cs

@@ -0,0 +1,44 @@
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+using System;
+using System.Data;
+using System.Configuration;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+using System.ComponentModel;
+
+namespace Mainsoft.Web.Administration
+{
+	public class GridButton : LinkButton
+	{
+		[Bindable (true)]
+		public string User
+		{
+			get { return ViewState["User"] == null ? String.Empty : (string) ViewState["User"]; }
+			set { ViewState["User"] = value; }
+		}
+	}
+}

+ 56 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/GridCheckBox.cs

@@ -0,0 +1,56 @@
+// Mainsoft.Web.Administration - Site administration utility
+// Authors:
+//  Klain Yoni <[email protected]>
+//
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+using System;
+using System.Data;
+using System.Configuration;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+using System.ComponentModel;
+
+namespace Mainsoft.Web.Administration
+{
+	public class GridCheckBox : CheckBox
+	{
+		[Bindable (true)]
+		public string User
+		{
+			get { return ViewState["User"] == null ? String.Empty : (string) ViewState["User"]; }
+			set { ViewState["User"] = value; }
+		}
+
+		[Bindable (true)]
+		public string Role
+		{
+			get { return ViewState["Role"] == null ? String.Empty : (string) ViewState["Role"]; }
+			set { ViewState["Role"] = value; }
+		}
+
+	}
+}

BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Images/mainsoft.jpg


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Images/untitled.bmp


+ 175 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Mainsoft.Web.Administration.csproj

@@ -0,0 +1,175 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.50727</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{50770B55-C326-4EAD-9211-77AC47F7E32C}</ProjectGuid>
+    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Mainsoft.Web.Administration</RootNamespace>
+    <AssemblyName>Mainsoft.Web.Administration</AssemblyName>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\</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\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="ConfigutationUtil, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\configutationutil\14371ef2\_shadow\a94966a1\bin\99\ConfigutationUtil.DLL</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Web" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Configuration" />
+    <Reference Include="System.Web.Services" />
+    <Reference Include="System.EnterpriseServices" />
+    <Reference Include="System.Web.Mobile" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Web.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="CreateRole.aspx.cs">
+      <SubType>ASPXCodeBehind</SubType>
+      <DependentUpon>CreateRole.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="CreateRole.aspx.designer.cs">
+      <DependentUpon>CreateRole.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="CreateUser.aspx.cs">
+      <SubType>ASPXCodeBehind</SubType>
+      <DependentUpon>CreateUser.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="CreateUser.aspx.designer.cs">
+      <DependentUpon>CreateUser.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="Default.aspx.cs">
+      <SubType>ASPXCodeBehind</SubType>
+      <DependentUpon>Default.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="Default.aspx.designer.cs">
+      <DependentUpon>Default.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="EditUser.aspx.cs">
+      <SubType>ASPXCodeBehind</SubType>
+      <DependentUpon>EditUser.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="EditUser.aspx.designer.cs">
+      <DependentUpon>EditUser.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="Error.aspx.cs">
+      <SubType>ASPXCodeBehind</SubType>
+      <DependentUpon>Error.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="Error.aspx.designer.cs">
+      <DependentUpon>Error.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="GridButton.cs" />
+    <Compile Include="GridCheckBox.cs" />
+    <Compile Include="ManageRole.aspx.cs">
+      <SubType>ASPXCodeBehind</SubType>
+      <DependentUpon>ManageRole.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="ManageRole.aspx.designer.cs">
+      <DependentUpon>ManageRole.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="ManageUser.aspx.cs">
+      <SubType>ASPXCodeBehind</SubType>
+      <DependentUpon>ManageUser.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="ManageUser.aspx.designer.cs">
+      <DependentUpon>ManageUser.aspx</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="RolesDS.cs" />
+    <Compile Include="Controls\Searcher.ascx.cs">
+      <DependentUpon>Searcher.ascx</DependentUpon>
+      <SubType>ASPXCodeBehind</SubType>
+    </Compile>
+    <Compile Include="Controls\Searcher.ascx.designer.cs">
+      <DependentUpon>Searcher.ascx</DependentUpon>
+    </Compile>
+    <Compile Include="Util.Master.cs">
+      <DependentUpon>Util.Master</DependentUpon>
+      <SubType>ASPXCodeBehind</SubType>
+    </Compile>
+    <Compile Include="Util.Master.designer.cs">
+      <DependentUpon>Util.Master</DependentUpon>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Mainsoft.Web.Administration.css" />
+    <Content Include="CreateUser.aspx" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="CreateRole.aspx" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Error.aspx" />
+    <Content Include="ManageRole.aspx" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="ManageUser.aspx" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="EditUser.aspx" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Controls\Searcher.ascx" />
+    <Content Include="Default.aspx" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Images\mainsoft.jpg" />
+    <Content Include="Util.Master" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Images\untitled.bmp" />
+    <Content Include="Web.sitemap" />
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="App_GlobalResources\" />
+    <Folder Include="App_LocalResources\" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v8.0\WebApplications\Microsoft.WebApplication.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>
+  -->
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
+        <WebProjectProperties>
+          <UseIIS>False</UseIIS>
+          <AutoAssignPort>True</AutoAssignPort>
+          <DevelopmentServerPort>1319</DevelopmentServerPort>
+          <DevelopmentServerVPath>/</DevelopmentServerVPath>
+          <IISUrl>
+          </IISUrl>
+          <NTLMAuthentication>False</NTLMAuthentication>
+        </WebProjectProperties>
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
+</Project>

+ 33 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Mainsoft.Web.Administration.csproj.user

@@ -0,0 +1,33 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <ProjectView>ShowAllFiles</ProjectView>
+    <ReferencePath>C:\Documents and Settings\evgenyk\My Documents\Visual Studio 2005\Projects\Mainsoft.Web.Administration\</ReferencePath>
+  </PropertyGroup>
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
+        <WebProjectProperties>
+          <StartPageUrl>Default.aspx</StartPageUrl>
+          <StartAction>SpecificPage</StartAction>
+          <AspNetDebugging>True</AspNetDebugging>
+          <NativeDebugging>False</NativeDebugging>
+          <SQLDebugging>False</SQLDebugging>
+          <PublishCopyOption>RunFiles</PublishCopyOption>
+          <PublishTargetLocation>
+          </PublishTargetLocation>
+          <PublishDeleteAllFiles>False</PublishDeleteAllFiles>
+          <PublishCopyAppData>True</PublishCopyAppData>
+          <ExternalProgram>
+          </ExternalProgram>
+          <StartExternalURL>
+          </StartExternalURL>
+          <StartCmdLineArguments>
+          </StartCmdLineArguments>
+          <StartWorkingDirectory>
+          </StartWorkingDirectory>
+          <EnableENC>False</EnableENC>
+        </WebProjectProperties>
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
+</Project>

+ 72 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Mainsoft.Web.Administration.css

@@ -0,0 +1,72 @@
+
+.appHeader
+{
+	background-image: url(Images/mainsoft.jpg); 
+	background-repeat :no-repeat;
+	height: 139px; 
+	width: 100%;
+	border-bottom: 1 solid #7daad4;
+	background-color:White;
+	width: 100%;
+	height: 133px;
+} 
+
+.controlheader {
+	text-align: center; 
+	background-color: #5D7B9D; 
+	font-weight:bold; 
+	font-size:0.9em; 
+	color:White;
+	text-align:center; 
+	height: 25px;
+}
+
+.maintable {
+	border-right: thin solid; 
+	padding-right: 2px; 
+	border-top: thin solid; 
+	padding-left: 2px; 
+	padding-bottom: 2px; 
+	border-left: thin solid; 
+	padding-top: 2px; 
+	border-bottom: thin solid;
+	width: 100%;
+}
+
+.innertable
+{
+	background-color: #f7f6f3;
+	border-right: #e6e2d8 1px solid;
+	border-top: #e6e2d8 1px solid;
+	border-left: #e6e2d8 1px solid;
+	border-bottom: #e6e2d8 1px solid;
+}
+
+.h1{
+	font-size: 25px;
+	vertical-align: middle;
+	color: #6699ff;
+	text-align: center;
+}
+
+.bordredtable
+{
+	border-right: #6699ff 5px solid;
+	padding-right: 40px;
+	border-top: #6699ff 5px solid;
+	padding-left: 40px;
+	padding-bottom: 40px;
+	border-left: #6699ff 5px solid;
+	padding-top: 40px;
+	border-bottom: #6699ff 5px solid;
+	width: 90%;
+	height: 500px;
+	margin:5%;
+}
+
+
+BODY,TABLE,TR,TD
+{
+	font-family: Arial;
+	font-size: 11pt;
+}

+ 94 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/ManageRole.aspx

@@ -0,0 +1,94 @@
+<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Util.Master" CodeBehind="ManageRole.aspx.cs" Inherits="Mainsoft.Web.Administration.MenageRole" %>
+<%@ Register tagprefix="custom" namespace="Mainsoft.Web.Administration" Assembly="Mainsoft.Web.Administration"  %>
+<asp:Content runat="server" ID="main" ContentPlaceHolderID="Main">
+<!--
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
+    <table class="maintable">
+        <tr>
+            <td colspan="2" width="100%" style="height: 21px">
+                Use this page to manage the members in the specified role. To add a user to the role, search for the user name and then select the User Is In Role check box for that user. 
+                <br /> 
+                Role:
+                <asp:Label   ID="role_lbl" runat="server" /> <br /> 
+            </td>
+        </tr>
+       <tr>
+            <td width= "100%" valign="top">
+                <table width="100%" class="innertable" >
+                    <tr>
+                        <td width="100%" class="controlheader">
+                            <asp:Literal ID="searchUserlbl" runat="server" Text="<%$ Resources:searchUserlbl %>"/>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td>
+                            Search for Users &nbsp; &nbsp; 
+                            <asp:DropDownList ID="searchBy_dl" runat="server">
+                                <asp:ListItem Selected="True" Value="Name">User Name</asp:ListItem>
+                                <asp:ListItem Value="Mail">E-Mail</asp:ListItem> 
+                            </asp:DropDownList> &nbsp; &nbsp;<asp:TextBox ID="user_txt" runat="server"></asp:TextBox>
+                            &nbsp;
+                            <asp:Button ID="searchUser_bt" runat="server" Text="Search" /> <br />
+                            Wildcard characters * and ? are permitted. <br /><br />
+                        </td>
+                    </tr>
+                    <tr>
+                        <td width= "100%" valign="top" datakeynames="Role;">
+                            <asp:GridView ID="Roles_gv" runat="server" CellPadding="4" DataSourceID="ObjectDataSource1" ForeColor="#333333" GridLines="None" Width="100%" AutoGenerateColumns="False" AllowPaging="True" PageSize="5">
+                                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
+                                <Columns>
+                                    <asp:BoundField DataField="User" HeaderText="User Name" />
+                                    <asp:TemplateField HeaderText="User Is In Role">
+                                        <ItemTemplate>
+                                            <custom:GridCheckBox ID="Check" runat="server" AutoPostBack="true" Checked='<%# Bind("InRole") %>'
+                                             User='<%# Bind("User") %>' OnCheckedChanged="CheckBox_CheckedChanged" />
+                                        </ItemTemplate>
+                                    </asp:TemplateField>
+                                </Columns>
+                                <RowStyle BackColor="#EFF3FB" />
+                                <EditRowStyle BackColor="#2461BF" />
+                                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
+                                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
+                                <HeaderStyle BackColor="#5D7B9D" BorderStyle="Solid" Font-Bold="True" Font-Size="0.9em"
+                                    ForeColor="White" HorizontalAlign="Left" />
+                                <AlternatingRowStyle BackColor="White" />
+                            </asp:GridView>
+                            <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="Delete"
+                                SelectMethod="CreateManageRoleTable" TypeName="Mainsoft.Web.Administration.RolesDS">
+                                <DeleteParameters>
+                                    <asp:Parameter Name="Role" Type="String" />
+                                </DeleteParameters>
+                                <SelectParameters>
+                                    <asp:QueryStringParameter Name="role" QueryStringField="Role" Type="String" />
+                                    <asp:ControlParameter ControlID="user_txt" Name="searchtag" PropertyName="Text"
+                                        Type="String" DefaultValue="&quot;&quot;" />
+                                    <asp:ControlParameter ControlID="searchBy_dl" Name="searchby" PropertyName="SelectedValue"
+                                        Type="String" />
+                                </SelectParameters>
+                            </asp:ObjectDataSource>
+                        </td>
+                    </tr>
+                </table>
+            </td> 
+        </tr>
+    </table>
+</asp:Content>

+ 65 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/ManageRole.aspx.cs

@@ -0,0 +1,65 @@
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
+
+
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+namespace Mainsoft.Web.Administration
+{
+	public partial class MenageRole : System.Web.UI.Page
+	{
+		String role;
+		protected void Page_Load (object sender, EventArgs e)
+		{
+			role = Request.QueryString["Role"];
+			if (!Roles.RoleExists (role)) {
+				Server.Transfer ("Error.aspx");
+			}
+			role_lbl.Text = role;
+		}
+
+		protected override void OnPreRender (EventArgs e)
+		{
+			Roles_gv.DataBind ();
+			base.OnPreRender (e);
+		}
+
+		public void CheckBox_CheckedChanged (object sender, EventArgs e)
+		{
+			string user = ((GridCheckBox) sender).User;
+			if (((GridCheckBox) sender).Checked) {
+				Roles.AddUserToRole (user, role);
+			}
+			else {
+				Roles.RemoveUserFromRole (user, role);
+			}
+		}
+	}
+}

+ 22 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/ManageRole.aspx.designer.cs

@@ -0,0 +1,22 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.42
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Mainsoft.Web.Administration {
+    
+    public partial class MenageRole {
+        protected System.Web.UI.WebControls.Label role_lbl;
+        protected System.Web.UI.WebControls.Literal searchUserlbl;
+        protected System.Web.UI.WebControls.DropDownList searchBy_dl;
+        protected System.Web.UI.WebControls.TextBox user_txt;
+        protected System.Web.UI.WebControls.Button searchUser_bt;
+        protected System.Web.UI.WebControls.GridView Roles_gv;
+        protected System.Web.UI.WebControls.ObjectDataSource ObjectDataSource1;
+    }
+}

+ 140 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/ManageUser.aspx

@@ -0,0 +1,140 @@
+<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Util.Master" CodeBehind="ManageUser.aspx.cs" Inherits="Mainsoft.Web.Administration.ManageUser" %>
+<%@ Register tagprefix="custom" namespace="Mainsoft.Web.Administration" Assembly="Mainsoft.Web.Administration"  %>
+<%@ Register TagPrefix="custom" TagName="searcher" Src="~/Controls/Searcher.ascx" %>
+
+<asp:Content runat="server" ID="main" ContentPlaceHolderID="Main">
+<!--
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
+<asp:MultiView ID="mv" ActiveViewIndex="0" runat="server">
+<asp:View ID="manage" runat="server" >
+    <table class="maintable">
+       <tr>
+            <td colspan="2" width="100%" style="height: 21px">
+             Click Edit User to view or change the user's password or other properties. To assign roles to the selected user, select the appropriate check boxes on the right. To prevent users from logging in to your application while retaining their information in your database, set the status to inactive by clearing the check box. 
+             <br /> <br /> <br /> 
+            </td>
+       </tr>
+       <tr>
+            <td width= "100%" valign="top" style="height: 360px">
+                <table width="100%" class="innertable" >
+                    <tr>
+                        <td width="100%" colspan="2" class="controlheader">
+                            Search for Users
+                        </td>
+                    </tr>
+                    <tr>
+                        <td colspan="2">
+                            Search by : &nbsp; &nbsp; 
+                            <asp:DropDownList ID="searchBy_lbx" runat="server">
+                                <asp:ListItem Selected="True" Value="Name">User Name</asp:ListItem>
+                                <asp:ListItem Value="Mail">E-Mail</asp:ListItem> 
+                            </asp:DropDownList> &nbsp; &nbsp;<asp:TextBox ID="user_txt" runat="server"></asp:TextBox>
+                            &nbsp;
+                            <asp:Button ID="searchUser_bt" runat="server" Text="Search" /> <br />
+                            Wildcard characters * and ? are permitted. <br /><br />
+                        </td>
+                    </tr>
+                    <tr>
+                        <td width= "70%" valign="top" > 
+                            <asp:GridView ID="Roles_gv" runat="server" CellPadding="4" DataSourceID="ObjectDataSource1" ForeColor="#333333" GridLines="None" Width="100%" AutoGenerateColumns="False" AllowPaging="True" PageSize="5" DataKeyNames="User" >
+                                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
+                                <Columns>
+                                    <asp:TemplateField HeaderText="Active">
+                                        <ItemTemplate>
+                                            <custom:GridCheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("Active") %>' AutoPostBack="true" 
+                                             OnCheckedChanged="CheckBox_CheckedChanged" User='<%# Bind("User") %>' />
+                                        </ItemTemplate>
+                                        <HeaderStyle HorizontalAlign="Left" />
+                                    </asp:TemplateField>
+                                    <asp:BoundField DataField="User" HeaderText="User Name" >
+                                        <HeaderStyle HorizontalAlign="Left" />
+                                    </asp:BoundField>
+                                    <asp:HyperLinkField DataNavigateUrlFields="User" DataNavigateUrlFormatString="~\EditUser.aspx?User={0}"
+                                        Text="Edit User" />
+                                    <asp:TemplateField ShowHeader="False">
+                                    <ItemTemplate>
+                                          <custom:GridButton ID="GridButton1" runat="server" User='<%# Bind("User") %>' OnClick="Delete_Click" >Delete User</custom:GridButton>
+                                    </ItemTemplate>
+                                    </asp:TemplateField>
+                                    <asp:TemplateField>
+                                        <ItemTemplate>
+                                            <custom:GridButton ID="grid_btn" runat="server" User='<%# Bind("User") %>' OnClick="gridbtn_click"  >Edit roles</custom:GridButton>
+                                        </ItemTemplate>
+                                    </asp:TemplateField>
+                                </Columns>
+                                <RowStyle BackColor="#EFF3FB" />
+                                <EditRowStyle BackColor="#2461BF" />
+                                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
+                                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
+                                <HeaderStyle BackColor="#5D7B9D" BorderStyle="Solid" Font-Bold="True" Font-Size="0.9em"
+                                    ForeColor="White" HorizontalAlign="Center" />
+                                <AlternatingRowStyle BackColor="White" />
+                            </asp:GridView>
+                            <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="DeleteUser"
+                                SelectMethod="SelectUser" TypeName="Mainsoft.Web.Administration.RolesDS">
+                                <DeleteParameters>
+                                    <asp:Parameter Name="User" Type="String" />
+                                </DeleteParameters>
+                                <SelectParameters>
+                                    <asp:ControlParameter ControlID="user_txt" DefaultValue="&quot;&quot;" Name="searchtag"
+                                        PropertyName="Text" Type="String" />
+                                    <asp:ControlParameter ControlID="searchBy_lbx" DefaultValue="" Name="searchby" PropertyName="SelectedValue"
+                                        Type="String" />
+                                </SelectParameters>
+                            </asp:ObjectDataSource>
+                        </td>
+                        <td width="30%" valign="top">
+                            <custom:Searcher ID="srch" runat="server" />
+                        </td>
+                    </tr>
+                </table>
+                <br /><br />
+            </td> 
+        </tr>
+        <tr>
+            <td colspan="2">
+                <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/CreateUser.aspx">Create new user</asp:HyperLink>
+            </td>
+        </tr>
+    </table>
+    </asp:View>
+    <asp:View ID="quest" runat="server">
+    <table class="innertable" width="60%">
+        <tr>
+            <td style="height: 80px" valign="top">
+                <br />
+                <img src="Images/untitled.bmp" /> &nbsp;
+                Are you sure you want to delete the user: "<%= User_name %>"? <br />
+                All information for this user will be deleted, including the user name, the user's membership in roles, and any profile property values associated with this user. 
+                <br /><br /><br />
+            </td>
+        </tr>
+        <tr>
+            <td align="right" style="background-color:inactivecaptiontext" >
+                <asp:Button ID="yes" runat="server" Text="Yes" style="width:50px" OnClick="Click_Yes" />
+                <asp:Button ID="no" runat="server" Text="No" style="width:50px" OnClick="Click_No" />
+            </td>
+        </tr>
+    </table>
+    </asp:View>
+    </asp:MultiView>
+</asp:Content>

+ 115 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/ManageUser.aspx.cs

@@ -0,0 +1,115 @@
+// Mainsoft.Web.Administration - Site administration utility
+// Authors:
+//  Klain Yoni <[email protected]>
+//
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+namespace Mainsoft.Web.Administration
+{
+	public partial class ManageUser : System.Web.UI.Page
+	{
+		public string User_name
+		{
+			get { return ViewState["User"] == null ? String.Empty : (string) ViewState["User"]; }
+			set { ViewState["User"] = value; }
+		}
+
+		protected void Page_Load (object sender, EventArgs e)
+		{
+			
+		}
+
+		protected override void OnPreRender (EventArgs e)
+		{
+			if (IsPostBack) {
+				Roles_gv.DataBind ();
+				if (mv.ActiveViewIndex == 1) {
+					((Button) Master.FindControl ("Back")).Visible = false;
+				}
+				else {
+					((Button) Master.FindControl ("Back")).Visible = true;
+				}
+			}
+			base.OnPreRender (e);
+		}
+
+		public void CheckBox_CheckedChanged (object sender, EventArgs e)
+		{
+			string user_name = ((GridCheckBox) sender).User;
+			MembershipUser user = Membership.GetUser (user_name);
+			if (((GridCheckBox) sender).Checked) {
+				user.IsApproved = true;
+				Membership.UpdateUser (user);
+			}
+			else {
+				user.IsApproved = false;
+				Membership.UpdateUser (user);
+			}
+		}
+
+		protected void gridbtn_click (object sender, EventArgs e)
+		{
+			srch.User = ((GridButton) sender).User;
+		}
+
+		protected void Roles_Changed (object sender, EventArgs e)
+		{
+			String user_name = (string) ViewState["User_name"];
+			if (((CheckBox) sender).Checked) {
+				Roles.AddUserToRole (user_name, ((CheckBox) sender).Text);
+			}
+			else {
+				Roles.RemoveUserFromRole (user_name, ((CheckBox) sender).Text);
+			}
+		}
+		
+		protected void Click_No (object sender, EventArgs e)
+		{
+			mv.ActiveViewIndex = 0;
+		}
+
+		protected void Click_Yes (object sender, EventArgs e)
+		{
+			RolesDS.DeleteUser (User_name);
+			//Roles_gv.DataBind ();
+			mv.ActiveViewIndex = 0;
+		}
+
+		protected void Delete_Click (object sender, EventArgs e)
+		{
+			User_name = ((GridButton) sender).User;
+			mv.ActiveViewIndex = 1;
+		}
+	}
+}

+ 27 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/ManageUser.aspx.designer.cs

@@ -0,0 +1,27 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.42
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Mainsoft.Web.Administration {
+    
+    public partial class ManageUser {
+        protected System.Web.UI.WebControls.MultiView mv;
+        protected System.Web.UI.WebControls.View manage;
+        protected System.Web.UI.WebControls.DropDownList searchBy_lbx;
+        protected System.Web.UI.WebControls.TextBox user_txt;
+        protected System.Web.UI.WebControls.Button searchUser_bt;
+        protected System.Web.UI.WebControls.GridView Roles_gv;
+        protected System.Web.UI.WebControls.ObjectDataSource ObjectDataSource1;
+        protected Mainsoft.Web.Administration.Searcher srch;
+        protected System.Web.UI.WebControls.HyperLink HyperLink1;
+        protected System.Web.UI.WebControls.View quest;
+        protected System.Web.UI.WebControls.Button yes;
+        protected System.Web.UI.WebControls.Button no;
+    }
+}

+ 35 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Properties/AssemblyInfo.cs

@@ -0,0 +1,35 @@
+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("Mainsoft.Web.Administration")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Mainsoft.Web.Administration")]
+[assembly: AssemblyCopyright("Copyright ©  2006")]
+[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("3d5900ae-111a-45be-96b3-d9e4606ca793")]
+
+// 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 Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 290 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/RolesDS.cs

@@ -0,0 +1,290 @@
+// Mainsoft.Web.Administration - Site administration utility
+// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+using System;
+using System.Data;
+using System.Configuration;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+using System.Text.RegularExpressions;
+
+namespace Mainsoft.Web.Administration
+{
+    public class RolesDS
+    {
+        public static DataTable Select()
+        {
+            return CreateDataTable();
+        }
+
+        public static DataTable SelectUser()
+        {
+            return CreateUserDataTable();
+        }
+
+        public static DataTable SelectUser(string searchtag, string searchby)
+        {
+            return CreateUserDataTable(searchtag, searchby);
+        }
+
+        public static DataTable SelectUsersRole(string user)
+        {
+            return CreateUsersRoles(user);
+        }
+
+        public static DataTable CreateUsersRoles(string user)
+        {
+            DataTable aTable = new DataTable("A");
+            DataColumn dtCol;
+            DataColumn dtCol1;
+            DataRow dtRow;
+
+
+            // Create User Name column and add to the table
+            dtCol = new DataColumn();
+            dtCol.DataType = Type.GetType("System.String");
+            dtCol.ColumnName = "Role";
+            dtCol.AutoIncrement = false;
+            dtCol.ReadOnly = false;
+            dtCol.Unique = true;
+            aTable.Columns.Add(dtCol);
+
+            dtCol1 = new DataColumn();
+            dtCol1.DataType = Type.GetType("System.Boolean");
+            dtCol1.ColumnName = "IsInRole";
+            dtCol1.AutoIncrement = false;
+            dtCol1.ReadOnly = false;
+            dtCol1.Unique = false;
+            aTable.Columns.Add(dtCol1);
+
+            // Create rows to the table
+            foreach (String role in Roles.GetAllRoles())
+            {
+                dtRow = aTable.NewRow();
+                dtRow["Role"] = role;
+                dtRow["IsInRole"] = Roles.IsUserInRole(user, role);
+                aTable.Rows.Add(dtRow);
+            }
+            aTable.PrimaryKey = new DataColumn[] { aTable.Columns["Role"] };
+            return aTable;
+        }
+
+        public static DataTable Delete(string Role)
+        {
+            if (Roles.RoleExists(Role))
+            {
+                Roles.DeleteRole(Role,false);
+            }
+            return Select();
+        }
+
+        public static DataTable DeleteUser(string User)
+        {
+            Membership.DeleteUser(User, true);
+            return SelectUser();
+        }
+
+        public static DataTable CreateUserDataTable()
+        {
+            DataTable aTable = new DataTable("A");
+            DataColumn dtCol;
+            DataColumn dtCol1;
+            DataRow dtRow;
+
+            // Create User Name column and add to the table
+            dtCol = new DataColumn();
+            dtCol.DataType = Type.GetType("System.String");
+            dtCol.ColumnName = "User";
+            dtCol.AutoIncrement = false;
+            dtCol.ReadOnly = false;
+            dtCol.Unique = true;
+            aTable.Columns.Add(dtCol);
+
+            dtCol1 = new DataColumn();
+            dtCol1.DataType = Type.GetType("System.Boolean");
+            dtCol1.ColumnName = "Active";
+            dtCol1.AutoIncrement = false;
+            dtCol1.ReadOnly = false;
+            dtCol1.Unique = false;
+            aTable.Columns.Add(dtCol1);
+
+            // Create rows to the table
+            foreach (MembershipUser user in Membership.GetAllUsers())
+            {
+                dtRow = aTable.NewRow();
+                dtRow["User"] = user.UserName;
+                dtRow["Active"] = user.IsApproved;
+                aTable.Rows.Add(dtRow);
+            }
+
+            aTable.PrimaryKey = new DataColumn[] { aTable.Columns["User"] };
+            return aTable;
+        }
+
+        public static DataTable CreateUserDataTable(string searchtag, string searchby)
+        {
+            DataTable aTable = new DataTable("A");
+            DataColumn dtCol;
+            DataColumn dtCol1;
+            DataRow dtRow;
+
+            dtCol = new DataColumn();
+            dtCol.DataType = Type.GetType("System.String");
+            dtCol.ColumnName = "User";
+            dtCol.AutoIncrement = false;
+            dtCol.ReadOnly = false;
+            dtCol.Unique = true;
+            aTable.Columns.Add(dtCol);
+
+            dtCol1 = new DataColumn();
+            dtCol1.DataType = Type.GetType("System.Boolean");
+            dtCol1.ColumnName = "Active";
+            dtCol1.AutoIncrement = false;
+            dtCol1.ReadOnly = false;
+            dtCol1.Unique = false;
+            aTable.Columns.Add(dtCol1);
+
+            string text = searchtag;
+            text = text.Replace("*", "%");
+            text = text.Replace("?", "_");
+
+            if (text.Trim() == "\"\"")
+                text = "%";
+
+            if (searchby == "Name")
+            {
+                foreach (MembershipUser user in Membership.FindUsersByName(text))
+                {
+                    dtRow = aTable.NewRow();
+                    dtRow["User"] = user.UserName;
+                    dtRow["Active"] = user.IsApproved;
+                    aTable.Rows.Add(dtRow);
+                }
+            }
+            else // Mail
+            {
+                foreach (MembershipUser user in Membership.FindUsersByEmail(text))
+                {
+                    dtRow = aTable.NewRow();
+                    dtRow["User"] = user.UserName;
+                    dtRow["Active"] = user.IsApproved;
+                    aTable.Rows.Add(dtRow);
+                }
+            }
+            
+            aTable.PrimaryKey = new DataColumn[] { aTable.Columns["User"] };
+            return aTable;
+        }
+
+        public static DataTable CreateDataTable()
+        {
+            DataTable aTable = new DataTable("A");
+            DataColumn dtCol;
+            DataRow dtRow;
+
+            // Create Name column and add to the table
+            dtCol = new DataColumn();
+            dtCol.DataType = Type.GetType("System.String");
+            dtCol.ColumnName = "Role";
+            dtCol.AutoIncrement = false;
+            dtCol.Caption = "Role Name";
+            dtCol.ReadOnly = false;
+            dtCol.Unique = false;
+            aTable.Columns.Add(dtCol);
+
+            // Create rows to the table
+            foreach (string str in Roles.GetAllRoles())
+            {
+                dtRow = aTable.NewRow();
+                dtRow["Role"] = str;
+                aTable.Rows.Add(dtRow);
+            }
+
+            aTable.PrimaryKey = new DataColumn[] { aTable.Columns["Role"] };
+            return aTable;
+        }
+
+        public static DataTable CreateManageRoleTable(string role, string searchtag, string searchby)
+        {
+            DataTable aTable = new DataTable("A");
+            DataColumn dtCol;
+            DataColumn dtCol1;
+            DataRow dtRow;
+
+            // Create UserName column and add to the table
+            dtCol = new DataColumn();
+            dtCol.DataType = Type.GetType("System.String");
+            dtCol.ColumnName = "User";
+            dtCol.AutoIncrement = false;
+            dtCol.Caption = "User Name";
+            dtCol.ReadOnly = false;
+            dtCol.Unique = true;
+            aTable.Columns.Add(dtCol);
+
+            // Create User in role bool column and add to the table
+            dtCol1 = new DataColumn();
+            dtCol1.DataType = Type.GetType("System.Boolean");
+            dtCol1.ColumnName = "InRole";
+            dtCol1.AutoIncrement = false;
+            dtCol1.Caption = "User Is In Role";
+            dtCol1.ReadOnly = false;
+            dtCol1.Unique = false;
+            aTable.Columns.Add(dtCol1);
+
+            string text = searchtag;
+            text = text.Replace("*", "%");
+            text = text.Replace("?", "_");
+
+            if (text.Trim() == "\"\"")
+                text = "%";
+
+            if (searchby == "Name")
+            {
+                foreach (MembershipUser user in Membership.FindUsersByName(text))
+                {
+                    dtRow = aTable.NewRow();
+                    dtRow["User"] = user.UserName;
+                    dtRow["InRole"] = Roles.IsUserInRole(user.UserName, role);
+                    aTable.Rows.Add(dtRow);
+                }
+            }
+            else // Mail
+            {
+                foreach (MembershipUser user in Membership.FindUsersByEmail(text))
+                {
+                    dtRow = aTable.NewRow();
+                    dtRow["User"] = user.UserName;
+                    dtRow["InRole"] = Roles.IsUserInRole(user.UserName, role);
+                    aTable.Rows.Add(dtRow);
+                }
+            }
+            aTable.PrimaryKey = new DataColumn[] { aTable.Columns["User"] };
+            return aTable;
+        }
+    }
+}
+
+

+ 56 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Util.Master

@@ -0,0 +1,56 @@
+<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Util.master.cs" Inherits="Mainsoft.Web.Administration.Util" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" >
+<head id="Head1" runat="server">
+    <link href="Mainsoft.Web.Administration.css" rel="stylesheet" type="text/css" />
+    <title>Configuration Utility</title>
+</head>
+<body>
+    <form id="form1" runat="server">
+    <div>
+    <table width="100%">
+    <tr>
+        <td class="appHeader">
+            &nbsp;
+        </td>
+    </tr>
+    <tr>
+        <td class="h1">
+            Welcome to the Web Site Administration Tool 
+        </td>
+    </tr>
+    <tr>
+        <td> 
+        <table class="bordredtable">
+            <tr style="background-color:">
+                <td style="background-color: lightblue">
+                Current page : &nbsp;
+                <asp:SiteMapPath ID="SiteMapPath1" runat="server" Font-Names="Verdana" Font-Size="0.8em"  PathSeparator=" >> ">
+                    <PathSeparatorStyle Font-Bold="True" ForeColor="#507CD1" />
+                    <CurrentNodeStyle ForeColor="#333333" />
+                    <NodeStyle Font-Bold="True" ForeColor="#284E98" />
+                    <RootNodeStyle Font-Bold="True" ForeColor="#507CD1" />
+                </asp:SiteMapPath>
+                </td>
+            </tr>
+            <tr>
+                <td width="100%" valign="top">
+                    <asp:ContentPlaceHolder ID="Main" runat="server">
+                    </asp:ContentPlaceHolder>
+                </td>
+            </tr>
+            <tr>
+                <td align="right">
+                    <asp:Button ID="Back" runat="server" Text="Back" style="padding-right: 1px; padding-left: 1px; font-weight: bold; padding-bottom: 1px; margin: 1px; color: yellow; padding-top: 1px; background-color: #6699ff" Enabled="false" OnClick="Button1_Click" />
+                </td>
+            </tr>
+        </table>    
+        </td>
+    </tr>
+    </table>
+    </div>
+    </form>
+</body>
+</html>

+ 40 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Util.Master.cs

@@ -0,0 +1,40 @@
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+namespace Mainsoft.Web.Administration
+{
+	public partial class Util : System.Web.UI.MasterPage
+	{
+		public String Backurl
+		{
+			get { return ViewState["BackUrl"] == null ? String.Empty : (string) ViewState["BackUrl"]; }
+			set { ViewState["BackUrl"] = value; }
+		}
+
+		protected void Page_Load (object sender, EventArgs e)
+		{
+			if (!IsPostBack) {
+				if (HttpContext.Current.Request.UrlReferrer != null) {
+					Backurl = HttpContext.Current.Request.UrlReferrer.ToString ();
+				}
+			}
+
+			if (HttpContext.Current.Request.Url.ToString ().IndexOf ("Default.aspx") == -1) {
+				Back.Enabled = true;
+			}
+		}
+
+		protected void Button1_Click (object sender, EventArgs e)
+		{
+			Response.Redirect (Backurl);
+		}
+	}
+}

+ 20 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Util.Master.designer.cs

@@ -0,0 +1,20 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.42
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Mainsoft.Web.Administration {
+    
+    public partial class Util {
+        protected System.Web.UI.HtmlControls.HtmlHead Head1;
+        protected System.Web.UI.HtmlControls.HtmlForm form1;
+        protected System.Web.UI.WebControls.SiteMapPath SiteMapPath1;
+        protected System.Web.UI.WebControls.ContentPlaceHolder Main;
+        protected System.Web.UI.WebControls.Button Back;
+    }
+}

+ 12 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/Web.sitemap

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
+    <siteMapNode url="~/Default.aspx" title="Home"  description="Home page">
+        <siteMapNode url="~/CreateUser.aspx" title="Create user"  description="Create new user" />
+        <siteMapNode url="~/ManageUser.aspx" title="Manage user"  description="Manage user">
+          <siteMapNode url="~/EditUser.aspx" title="Edit user" description="Edit user"/>
+        </siteMapNode>
+      <siteMapNode url="~/CreateRole.aspx" description="Create\Manage roles" title="Create\Manage roles">
+        <siteMapNode url="~/ManageRole.aspx" description="Manage roles" title="Manage roles" />
+      </siteMapNode>
+    </siteMapNode>
+</siteMap>

BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/bin/ConfigutationUtil.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/bin/ConfigutationUtil.pdb


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/bin/Mainsoft.Web.Administration.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/bin/Mainsoft.Web.Administration.pdb


+ 4 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/ConfigutationUtil.csproj.FileList.txt

@@ -0,0 +1,4 @@
+bin\ConfigutationUtil.pdb
+obj\Debug\ResolveAssemblyReference.cache
+obj\Debug\ConfigutationUtil.dll
+obj\Debug\ConfigutationUtil.pdb

BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/ConfigutationUtil.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/ConfigutationUtil.pdb


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/Mainsoft.Web.Administration.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/Mainsoft.Web.Administration.pdb


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/ResolveAssemblyReference.cache


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_GlobalResources.GlobalResource.Designer.cs.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_GlobalResources.Resource1.Designer.cs.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.CreateRole.aspx.Designer.cs.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.CreateUser.aspx.Designer.cs.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.Default.aspx.Designer.cs.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.EditUser.aspx.Designer.cs.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.ManageUser.aspx.Designer.cs.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.MenageRole.aspx.Designer.cs.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.Util.Master.Designer.cs.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/App_LocalResources.Web.Master.Designer.cs.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/CreateUser.aspx.designer.cs.dll


BIN
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Debug/TempPE/Default.aspx.designer.cs.dll


+ 6 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/obj/Mainsoft.Web.Administration.csproj.FileList.txt

@@ -0,0 +1,6 @@
+bin\Mainsoft.Web.Administration.dll
+bin\Mainsoft.Web.Administration.pdb
+bin\ConfigutationUtil.pdb
+obj\Debug\ResolveAssemblyReference.cache
+obj\Debug\Mainsoft.Web.Administration.dll
+obj\Debug\Mainsoft.Web.Administration.pdb

+ 36 - 0
mcs/class/System.Web/Test/mainsoft/Mainsoft.Web.Administration/Mainsoft.Web.Administration/web.config

@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+
+<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
+  
+    <appSettings/>
+    <connectionStrings/>
+  
+    <system.web>
+        <!-- 
+            Set compilation debug="true" to insert debugging 
+            symbols into the compiled page. Because this 
+            affects performance, set this value to true only 
+            during development.
+        -->
+        <roleManager enabled="true" />
+        <compilation debug="true" />
+        <!--
+            The <authentication> section enables configuration 
+            of the security authentication mode used by 
+            ASP.NET to identify an incoming user. 
+        -->
+        <authentication mode="Forms" />
+        <!--
+            The <customErrors> section enables configuration 
+            of what to do if/when an unhandled error occurs 
+            during the execution of a request. Specifically, 
+            it enables developers to configure html error pages 
+            to be displayed in place of a error stack trace.
+
+        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
+            <error statusCode="403" redirect="NoAccess.htm" />
+            <error statusCode="404" redirect="FileNotFound.htm" />
+        </customErrors>
+        -->
+    </system.web>
+</configuration>