Beispiel #1
0
 public void CreateItemsFromAFolder(
     string storageConnectionString,
     string storeName,
     string applicationName,
     string folderPath,
     string searchPattern,
     ItemType itemType)
 {
     using (IAzManStorage storage = new SqlAzManStorage(storageConnectionString))
     {
         storage.OpenConnection();
         storage.BeginTransaction();
         try
         {
             IAzManApplication app = storage.GetStore(storeName).GetApplication(applicationName);
             DirectoryInfo di = new DirectoryInfo(folderPath);
             foreach (FileInfo fi in di.GetFiles(searchPattern))
             {
                 //Use some recursive function to get subfolder files
                 app.CreateItem(fi.Name, String.Empty, itemType);
             }
             storage.CommitTransaction();
         }
         catch
         {
             storage.RollBackTransaction();
         }
         finally
         {
             storage.Dispose();
         }
     }
 }
 protected void btnCreateStore_Click(object sender, EventArgs e)
 {
     IAzManStorage storage = new SqlAzManStorage(ConfigurationManager.ConnectionStrings["NetSqlAzManStorage"].ConnectionString);
     storage.OpenConnection();
     try
     {
         storage.BeginTransaction(AzManIsolationLevel.ReadUncommitted);
         IAzManStore store = storage.CreateStore("Store Created Programmatically", "store description");
         for (int i = 0; i < 10; i++)
         {
             IAzManApplication app = store.CreateApplication("App " + i.ToString(), "application description");
             IAzManItem prevItem = null;
             for (int j = 0; j < 10; j++)
             {
                 IAzManItem item = app.CreateItem("Item " + j.ToString(), "item description", ItemType.Operation);
                 if (prevItem!=null)
                     item.AddMember(prevItem);
                 prevItem = item;
             }
         }
         storage.CommitTransaction();
     }
     catch
     {
         storage.RollBackTransaction();
         throw;
     }
     finally
     {
         storage.CloseConnection();
     }
 }
Beispiel #3
0
 /// <summary>
 /// Create an Authorization Delegate
 /// </summary>
 private void AddDBUserToRole(string dbUserName, string roleName)
 {
     //Sql Storage connection string
     string sqlConnectionString = "data source=(local);initial catalog=NetSqlAzManStorage;user id=sa;password=password";
     //Create an instance of SqlAzManStorage class
     using (IAzManStorage storage = new SqlAzManStorage(sqlConnectionString))
     {
         storage.OpenConnection();
         IAzManStore mystore = storage.GetStore("My Store"); //or storage["My Store"]
         IAzManApplication myapp = mystore.GetApplication("My Application");
         IAzManItem myRole = myapp.GetItem(roleName);
         //Retrieve DB user identity
         IAzManDBUser dbUser = storage.GetDBUser(dbUserName);
         //Add DB "My Db User" to "My Role" role.
         IAzManAuthorization auth = myRole.CreateAuthorization(new SqlAzManSID(WindowsIdentity.GetCurrent().User), WhereDefined.LDAP, dbUser.CustomSid, WhereDefined.Database, AuthorizationType.Allow, null, null);
         //Optional: add authorization attribute
         //auth.CreateAttribute("attribute key", "attribute value");
         storage.CloseConnection();
         storage.Dispose();
     }
 }
Beispiel #4
0
 private void btnCreateItemsFromAFolder_Click(object sender, EventArgs e)
 {
     using (IAzManStorage storage = new SqlAzManStorage("Data Source=(local);Initial Catalog=NetSqlAzManStorage;Integrated Security=SSPI;"))
     {
         storage.OpenConnection();
         storage.BeginTransaction();
         var a = storage["Eidos"]["DB Persone"]["Gestore"].GetMembers();
         storage.Dispose();
     }
     this.CreateItemsFromAFolder(
         "Data Source=(local);Initial Catalog=NetSqlAzManStorage;Integrated Security=SSPI;",
         "My Store",
         "My Application",
         @"D:\Documenti\EIDOS\ICP\EIDOS.ApplicazioniAziendali\EIDOS.ApplicazioniAziendali.DBPersone.Web",
         "*.aspx",
         ItemType.Task);
 }
Beispiel #5
0
        /// <summary>
        /// Handles the Click event of the btnCreateALotOfItems control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void btnCreateALotOfItems_Click(object sender, EventArgs e)
        {
            string cs = "data source=(local);initial catalog=NetSqlAzManStorage;Integrated Security=SSPI;";
            IAzManStorage storage = new SqlAzManStorage(cs);
            storage.OpenConnection();
            storage.BeginTransaction();
            IAzManStore store = storage.CreateStore("Test2", String.Empty);
            IAzManApplication app = store.CreateApplication("Test", String.Empty);
            storage.ENS.AuthorizationCreated+= new AuthorizationCreatedDelegate(ens_AuthorizationCreated);

            //Create 1 MLN Items
            for (int r = 0; r < 100; r++)
            {
                IAzManItem role = app.CreateItem("Role " + r.ToString(), "", ItemType.Role);

                IAzManAuthorization auth = role.CreateAuthorization(new SqlAzManSID(WindowsIdentity.GetCurrent().User), WhereDefined.Local,
                    new SqlAzManSID(WindowsIdentity.GetCurrent().User), WhereDefined.Local, AuthorizationType.Allow, null, null);
                Debug.WriteLine("Role "+ r.ToString());
                auth.CreateAttribute("key", "value");
                for (int t = 0; t < 100; t++)
                {
                    IAzManItem task = app.CreateItem("Task " + t.ToString() + " of Role " + r.ToString(), "", ItemType.Task);
                    role.AddMember(task);
                    for (int o = 0; o < 100; o++)
                    {
                        IAzManItem op = app.CreateItem("Operation " + o.ToString() + " of Task " + t.ToString() + " of Role " + r.ToString() , "", ItemType.Operation);
                        task.AddMember(op);
                    }
                }
            }
            storage.CommitTransaction();
            storage.CloseConnection();
        }
        /// <summary>
        /// Create a Full Storage through .NET code
        /// </summary>
        private void CreateFullStorage()
        {
            // USER MUST BE A MEMBER OF SQL DATABASE ROLE: NetSqlAzMan_Administrators

            //Sql Storage connection string
            string sqlConnectionString = "data source=(local);initial catalog=NetSqlAzManStorage;user id=netsqlazmanuser;password=password";
            //Create an instance of SqlAzManStorage class
            IAzManStorage storage = new SqlAzManStorage(sqlConnectionString);
            //Open Storage Connection
            storage.OpenConnection();
            //Begin a new Transaction
            storage.BeginTransaction(AzManIsolationLevel.ReadUncommitted);
            //Create a new Store
            IAzManStore newStore = storage.CreateStore("My Store", "Store description");
            //Create a new Basic StoreGroup
            IAzManStoreGroup newStoreGroup = newStore.CreateStoreGroup(SqlAzManSID.NewSqlAzManSid(), "My Store Group", "Store Group Description", String.Empty, GroupType.Basic);
            //Retrieve current user SID
            IAzManSid mySid = new SqlAzManSID(((System.Threading.Thread.CurrentPrincipal.Identity as WindowsIdentity) ?? WindowsIdentity.GetCurrent()).User);
            //Add myself as sid of "My Store Group"
            IAzManStoreGroupMember storeGroupMember = newStoreGroup.CreateStoreGroupMember(mySid, WhereDefined.Local, true);
            //Create a new Application
            IAzManApplication newApp = newStore.CreateApplication("New Application", "Application description");
            //Create a new Role
            IAzManItem newRole = newApp.CreateItem("New Role", "Role description", ItemType.Role);
            //Create a new Task
            IAzManItem newTask = newApp.CreateItem("New Task", "Task description", ItemType.Task);
            //Create a new Operation
            IAzManItem newOp = newApp.CreateItem("New Operation", "Operation description", ItemType.Operation);
            //Add "New Operation" as a sid of "New Task"
            newTask.AddMember(newOp);
            //Add "New Task" as a sid of "New Role"
            newRole.AddMember(newTask);
            //Create an authorization for myself on "New Role"
            IAzManAuthorization auth = newRole.CreateAuthorization(mySid, WhereDefined.Local, mySid, WhereDefined.Local, AuthorizationType.AllowWithDelegation, null, null);
            //Create a custom attribute
            IAzManAttribute<IAzManAuthorization> attr = auth.CreateAttribute("New Key", "New Value");
            //Create an authorization for DB User "Andrea" on "New Role"
            IAzManAuthorization auth2 = newRole.CreateAuthorization(mySid, WhereDefined.Local, storage.GetDBUser("Andrea").CustomSid, WhereDefined.Local, AuthorizationType.AllowWithDelegation, null, null);
            //Commit transaction
            storage.CommitTransaction();
            //Close connection
            storage.CloseConnection();
        }
Beispiel #7
0
 private void btnTestNetSqlAzMan_Click(object sender, EventArgs e)
 {
     this.Clessidra(true);
     this.StartTimer();
     int n = int.Parse(this.txtNetSqlAzManThreads.Text);
     int max = int.Parse(this.txtUnita.Text);
     this.pb.Maximum = n - 1;
     if (!this.chkNetSqlAzManMultiThread.Checked)
     {
         if (!this.chkCache.Checked)
         {
             for (int i = 0; i < n; i++)
             {
                 this.TestSuNetSqlAzMan(this.txtNetSqlAzManConnectionString.Text, max);
                 this.pb.Value = i;
                 Application.DoEvents();
             }
         }
         else
         {
             WindowsIdentity id = WindowsIdentity.GetCurrent();
             IAzManStorage storage = new SqlAzManStorage(this.txtNetSqlAzManConnectionString.Text);
             storage.OpenConnection();
             int rnd = new Random().Next(max);
             NetSqlAzMan.Cache.UserPermissionCache c = new NetSqlAzMan.Cache.UserPermissionCache(storage, "Store Stress Test", "Application" + rnd.ToString(), id, true, true);
             for (int i = 0; i < n; i++)
             {
                 List<KeyValuePair<string, string>> attr;
                 AuthorizationType res = c.CheckAccess("Operation" + rnd.ToString(), DateTime.Now, out attr);
                 this.pb.Value = i;
                 Application.DoEvents();
             }
             storage.CloseConnection();
             storage.Dispose();
         }
     }
     else
     {
         Thread[] tt = new Thread[n];
         //Threads Prepare
         for (int i = 0; i < n; i++)
         {
             tt[i] = new Thread(new ThreadStart(this.TestSuNetSqlAzManForThread));
             tt[i].Start();
             this.pb.Value = i;
         }
         //Threads Consume
         for (int i = 0; i < n; i++)
         {
             tt[i].Join();
             this.pb.Value = i;
         }
         //Threads Destroy
         for (int i = 0; i < n; i++)
         {
             tt[i] = null;
             this.pb.Value = i;
         }
     }
     this.StopTimer(this.txtNetSqlAzManElapsed);
     this.Clessidra(false);
 }
Beispiel #8
0
 private void TestSuNetSqlAzMan(string connectionString, int max)
 {
     WindowsIdentity id = WindowsIdentity.GetCurrent();
     int rnd = new Random().Next(max);
     IAzManStorage storage = new SqlAzManStorage(connectionString);
     storage.OpenConnection();
     AuthorizationType res = storage.CheckAccess("Store Stress Test", "Application" + rnd.ToString(), "Operation" + rnd.ToString(), id, DateTime.Now, true, new KeyValuePair<string, object>("chiave","valore"));
     //AuthorizationType res = storage.CheckAccess("Store Stress Test", "Application" + rnd.ToString(), "Operation" + rnd.ToString(), storage.GetDBUser("Andrea"), DateTime.Now, true, new KeyValuePair<string, object>("chiave", "valore"));
     storage.CloseConnection();
     storage.Dispose();
 }
Beispiel #9
0
 private void CreaStrutturaSuNetSqlAzMan(string connectionString, int n)
 {
     this.Clessidra(true);
     this.StartTimer();
     WindowsIdentity id = WindowsIdentity.GetCurrent();
     IAzManStorage storage = new SqlAzManStorage(connectionString);
     storage.ENS.AuthorizationCreated += new NetSqlAzMan.ENS.AuthorizationCreatedDelegate(ENS_AuthorizationCreated);
     try
     {
         IAzManStore s = storage["Store Stress Test"];
         if (s != null)
             s.Delete();
     }
     catch { }
     storage.OpenConnection();
     storage.BeginTransaction(AzManIsolationLevel.ReadUncommitted);
     IAzManStore store = storage.CreateStore("Store Stress Test", String.Empty);
     this.pb.Maximum = n - 1;
     for (int a = 0; a < n; a++)
     {
         IAzManApplication app = store.CreateApplication("Application" + a.ToString(), String.Empty);
         this.pb.Value = a;
         Application.DoEvents();
         for (int i = 0; i < n; i++)
         {
             IAzManItem role = app.CreateItem("Role" + i.ToString(), String.Empty, ItemType.Role);
             IAzManItem task = app.CreateItem("Task" + i.ToString(), String.Empty, ItemType.Task);
             IAzManItem op = app.CreateItem("Operation" + i.ToString(), String.Empty, ItemType.Operation);
             role.AddMember(task);
             task.AddMember(op);
             role.CreateAuthorization(new SqlAzManSID(id.User), WhereDefined.LDAP, new SqlAzManSID(id.User), WhereDefined.LDAP, AuthorizationType.Allow, null, null); //add current Windows user
             //role.CreateAuthorization(new SqlAzManSID(id.User), WhereDefined.LDAP, new SqlAzManSID(storage.GetDBUser("Andrea").CustomSid.BinaryValue, true), WhereDefined.Database, AuthorizationType.Allow, null, null); //add Andrea DB User
         }
     }
     //storage.RollBackTransaction();
     storage.CommitTransaction();
     storage.CloseConnection();
     this.StopTimer(this.txtNetSqlAzManElapsed);
     this.Clessidra(false);
 }