コード例 #1
0
 /// <summary>
 /// Check Access from your Application [FOR Windows Users ONLY].
 /// </summary>
 /// <param name="dbUserName">DB Username</param>
 private void CheckAccessPermissionsForDBUsers(string dbUserName)
 {
     // REMBER:
     // Modify dbo.GetDBUsers Table-Function to customize DB User list.
     // USER MUST BE A MEMBER OF SQL DATABASE ROLE: NetSqlAzMan_Readers
     //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);
     //Retrieve DB User identity from dbo.GetDBUsers Table-Function
     IAzManDBUser dbUser = storage.GetDBUser(dbUserName);
     AuthorizationType auth = storage.CheckAccess("My Store", "My Application", "My Operation", dbUser, DateTime.Now, true);
     switch (auth)
     {
         case AuthorizationType.AllowWithDelegation:
             //Yes, I can ... and I can delegate
             break;
         case AuthorizationType.Allow:
             //Yes, I can
             break;
         case AuthorizationType.Neutral:
         case AuthorizationType.Deny:
             //No, I cannot
             break;
     }
 }
コード例 #2
0
 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();
     }
 }
コード例 #3
0
 protected void Button2_Click(object sender, EventArgs e)
 {
     IAzManStorage storage = new SqlAzManStorage("data source=(local);Initial Catalog=NetSqlAzManStorage;user id=sa;password="******"Andrea");
     UserPermissionCache cache = new UserPermissionCache(storage, "Store Stress Test", "Application0", andrea, true, true);
     Session["cache"] = cache;
 }
コード例 #4
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
 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();
         }
     }
 }
コード例 #5
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            IAzManStorage storage = new SqlAzManStorage("data source=(local);Initial Catalog=NetSqlAzManStorage;user id=sa;password="******"Store Stress Test", "Application0", "Role0", this.Request.LogonUserIdentity, DateTime.Now, false).ToString();
                this.TextBox1.Text += storage.CheckAccess("Store Stress Test", "Application0", "Operation0", this.Request.LogonUserIdentity, DateTime.Now, false).ToString();
            }
            //Application0.Security.CheckAccessHelper chk = new Application0.Security.CheckAccessHelper("data source=.;Initial Catalog=NetSqlAzManStorage;Integrated Security=SSPI", this.Request.LogonUserIdentity);

            //            this.TextBox1.Text = chk.CheckAccess(Application0.Security.CheckAccessHelper.Operation.Operation0).ToString();
        }
コード例 #6
0
        public void AssociateRoles(string username)
        {
            string store       = "CATS";
            string application = "Early Warning";

            string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["CatsContext"].ConnectionString;

            IAzManStorage AzManStore = new NetSqlAzMan.SqlAzManStorage(connectionString);

            NetSqlAzMan.Cache.StorageCache storage = new NetSqlAzMan.Cache.StorageCache(connectionString);
            storage.BuildStorageCache(store, application);

            //storage.GetAuthorizedItems()
            // NetSqlAzMan.Cache.AuthorizedItem[] items = storage.GetAuthorizedItems(store, application, AzManStore.GetDBUser(username).CustomSid.StringValue, DateTime.Now);
            //var users = new string[] {"Me"};
            var roles = new string[] { "Create" };

            AddUserToRoles("me", roles, store, application);
        }
コード例 #7
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
 /// <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();
     }
 }
コード例 #8
0
        /// <summary>
        /// Check Access from your Application [FOR Windows Users ONLY].
        /// </summary>
        /// <param name="userIdentity">Windows User Identity.</param>
        private void CheckAccessPermissionsForWindowsUsers(WindowsIdentity userIdentity, bool useCache)
        {
            // USER MUST BE A MEMBER OF SQL DATABASE ROLE: NetSqlAzMan_Readers

            //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);
            //To Pass current user identity:
            //WindowsIdentity.GetCurrent() -> for Windows Applications
            //this.Request.LogonUserIdentity -> for ASP.NET Applications
            List<KeyValuePair<string, string>> attributes;
            AuthorizationType auth;
            if (useCache)
            {
                //Build the cache Only one time per session/application/user
                NetSqlAzMan.Cache.UserPermissionCache cache = new NetSqlAzMan.Cache.UserPermissionCache(storage, "My Store", "My Application", userIdentity, true, true);
                //Then Check Access
                auth = cache.CheckAccess("My Operation", DateTime.Now,out attributes);
            }
            else
            {
                auth = storage.CheckAccess("My Store", "My Application", "My Operation", userIdentity, DateTime.Now, true, out attributes);
            }
            switch (auth)
            {
                case AuthorizationType.AllowWithDelegation:
                    //Yes, I can ... and I can delegate
                    break;
                case AuthorizationType.Allow:
                    //Yes, I can
                    break;
                case AuthorizationType.Neutral:
                case AuthorizationType.Deny:
                    //No, I cannot
                    break;
            }
            //Do something with attributes found
        }
コード例 #9
0
 protected void Page_Load(object sender, EventArgs e)
 {
     IAzManStorage storage = new SqlAzManStorage(ConfigurationManager.ConnectionStrings["NetSqlAzManStorage"].ConnectionString);
     this.application = storage[ConfigurationManager.AppSettings["StoreName"]][ConfigurationManager.AppSettings["ApplicationName"]];
     //Get user Identity
     this.identity = this.Request.LogonUserIdentity;
     this.lblIAM.Text = this.identity.Name;
     //Print DateTime
     this.lblDateTime.Text = DateTime.Now.ToString();
     //Check Access on Items
     this.application.Store.Storage.OpenConnection();
     this.btnBudgetCheck.Enabled = this.checkAccessHelper("Controllo del Budget");
     this.btnCustomerRelationshipManagement.Enabled = this.checkAccessHelper("Relazioni con i Clienti");
     this.btnConstraintCheck.Enabled = this.checkAccessHelper("Controllo dei Vincoli");
     this.btnTimesheetCheck.Enabled = this.checkAccessHelper("Approvazione del TimeSheet");
     this.btnTimesheetCompile.Enabled = this.checkAccessHelper("Compilazione del Timesheet");
     this.btnDevelopment.Enabled = this.checkAccessHelper("Sviluppo");
     //Can delegate ?
     NTAccount delegatedNTAccount = new NTAccount("ProductManager1");
     SecurityIdentifier delegatedSid = (SecurityIdentifier)delegatedNTAccount.Translate(typeof(SecurityIdentifier));
     bool canDelegate = this.checkAccessForDelegationHelper("Controllo del Budget");
     bool alreadyDelegate = this.application["Controllo del Budget"].GetAuthorizations(new SqlAzManSID(this.identity.User), new SqlAzManSID(delegatedSid)).Length > 0;
     this.btnDelegateForBudgetCheck.Enabled = canDelegate && !alreadyDelegate;
     this.btnUndelegate.Enabled = canDelegate && alreadyDelegate;
     //Attributes
     IAzManAuthorization[] auths = this.application["Controllo del Budget"].GetAuthorizationsOfMember(new SqlAzManSID(this.identity.User));
     string toolTip = String.Empty;
     foreach (IAzManAuthorization auth in auths)
     {
         IAzManAttribute<IAzManAuthorization>[] attribs = auth.GetAttributes();
         foreach (IAzManAttribute<IAzManAuthorization> attrib in attribs)
         {
             toolTip += String.Format("{0} - {1}\r\n", attrib.Key, attrib.Value);
         }
     }
     this.btnBudgetCheck.ToolTip = toolTip;
     this.application.Store.Storage.CloseConnection();
 }
コード例 #10
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
        private void btnStoreManipulate_Click(object sender, EventArgs e)
        {
            IAzManStorage storage = new SqlAzManStorage("data source=EIDOS-NBAFR;Initial Catalog=NetSqlAzManStorage;Integrated Security = SSPI;");
            storage.BeginTransaction(AzManIsolationLevel.ReadUncommitted);
            IAzManStore store1 = storage.CreateStore("Store di prova 3", "descrizione");

            IAzManStoreGroup storeGroup = store1.CreateStoreGroup(SqlAzManSID.NewSqlAzManSid(), "Store Group 2", "sg1 des", null, GroupType.Basic);
            storeGroup.CreateStoreGroupMember(SqlAzManSID.NewSqlAzManSid(), WhereDefined.LDAP, true);
            IAzManStoreGroupMember[] storeGroupMembers = storeGroup.GetStoreGroupMembers();
            store1.CreateApplication("Application 3", "description of store 3");
            IAzManApplication app = store1.GetApplication("Application 3");
            IAzManApplicationGroup appGroup = app.CreateApplicationGroup(SqlAzManSID.NewSqlAzManSid(), "Application Group 3", "ag3 des", null, GroupType.Basic);
            appGroup.CreateApplicationGroupMember(SqlAzManSID.NewSqlAzManSid(), WhereDefined.LDAP, false);
            IAzManApplicationGroupMember[] appGroupMembers = appGroup.GetApplicationGroupMembers();
            IAzManItem item1 = app.CreateItem("Responsabile UO", "descrizione", ItemType.Role);
            IAzManItem item11 = app.CreateItem("Modifica", "mod des", ItemType.Task);
            IAzManItem item111 = app.CreateItem("Salva", "salva descr", ItemType.Operation);
            item1.AddMember(item11);
            item11.AddMember(item111);
            IAzManAuthorization auth111 = item111.CreateAuthorization(this.currentOwnerSid, WhereDefined.LDAP, SqlAzManSID.NewSqlAzManSid(), WhereDefined.Store, AuthorizationType.AllowWithDelegation, DateTime.Now, null);
            IAzManAttribute<IAzManAuthorization> attr111 = auth111.CreateAttribute("UO", "SS20S");
            storage.CommitTransaction();
        }
コード例 #11
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
        private void btnItemManipulate_Click(object sender, EventArgs e)
        {
            try
            {
                IAzManStorage storage = new SqlAzManStorage("data source=.;Initial Catalog=NetSqlAzManStorage;Integrated Security = SSPI;");
                IAzManStore store = storage.GetStore("Store Stress Test");
                //IAzManStoreGroup storage = store.GetStoreGroup("Store Group 1");
                IAzManItem item = store.GetApplication("Application0").GetItem("Operation0");
                string bizRule =
                                        @"using System;
            using System.Security.Principal;
            using System.IO;
            using System.Data;
            using System.Collections;
            using System.Collections.Specialized;
            using System.Collections.Generic;
            using System.Text;
            using NetSqlAzMan;
            using NetSqlAzMan.Interfaces;

            namespace Prova.BizRules
            {
            public sealed class BizRule : IAzManBizRule
            {
            public BizRule()
            { }

            public bool Execute(Hashtable contextParameters, IAzManSid identity, IAzManItem ownerItem, ref AuthorizationType authorizationType)
            {
            //my comments
            //Assign authorizationType to some AuthorizationType value to force CheckAccess result for this item.
            return true;
            }
            }
            }
            ";
            //@"Imports System
            //Imports System.Security.Principal
            //Imports System.IO
            //Imports System.Data
            //Imports System.Data.SqlClient
            //Imports System.Collections
            //Imports System.Collections.Specialized
            //Imports System.Collections.Generic
            //Imports System.Text
            //Imports NetSqlAzMan
            //Imports NetSqlAzMan.Interfaces
            //
            //Namespace MyApplication.BizRules
            //    Public NotInheritable Class BizRule : Implements IAzManBizRule
            //        Public Sub New()
            //        End Sub
            //
            //        Public Overloads Function Execute(ByVal contextParameters As Hashtable, ByVal identity As WindowsIdentity, ByVal ownerItem As IAzManItem) As Boolean _
            //            Implements IAzManBizRule.Execute
            //            Return True
            //        End Function
            //    End Class
            //End Namespace
            //
            //";
                item.ReloadBizRule(bizRule, NetSqlAzMan.BizRuleSourceLanguage.CSharp);
                Assembly ass = item.LoadBizRuleAssembly();

                //AuthorizationType authorizationType = storage.CheckAccess(System.Security.Principal.WindowsIdentity.GetCurrent(), DateTime.Now);
                //MessageBox.Show(authorizationType.ToString());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #12
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
        private void btnStorageCacheAuthorizedItems_Click(object sender, EventArgs e)
        {
            string cs = "data source=.;Initial Catalog=NetSqlAzManStorage;user id=testuser;password=;";
            var ctx = new[] { new KeyValuePair<string, object>("Value1", "111"), new KeyValuePair<string, object>("Value2", "222") };
            IAzManStorage storage = new SqlAzManStorage(cs);
            IAzManApplication app = storage["Eidos"]["DB Persone"];
            var res = app.GetItem("Gestore");
            MessageBox.Show(res.Members.Count.ToString());
            //string ssid = WindowsIdentity.GetCurrent().GetUserBinarySSid();
            //string[] gsid = WindowsIdentity.GetCurrent().GetGroupsBinarySSid();
            //DateTime t1, t2;

            //StorageCache sc = new StorageCache(cs);
            //sc.BuildStorageCache("Eidos");
            //t1 = DateTime.Now;
            //for (int i = 0; i < 1000; i++)
            //{
            //    AuthorizedItem[] result = sc.GetAuthorizedItems("Eidos", "DB Persone", ssid, gsid, DateTime.Now, ctx);
            //}
            //t2 = DateTime.Now;
            //double ms = t2.Subtract(t1).TotalMilliseconds;
            //MessageBox.Show(String.Format("Done in {0} ms", ms));
        }
コード例 #13
0
 protected void lnkReload_Click(object sender, EventArgs e)
 {
     Session["storage"] = new SqlAzManStorage(((IAzManStorage)this.Session["storage"]).ConnectionString);
     Response.Redirect("WebConsole.aspx");
 }
コード例 #14
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
        private void btnIHV_Click(object sender, EventArgs e)
        {
            //IAzManStorage storage = new SqlAzManStorage("data source=.;Initial Catalog=NetSqlAzManStorage;Integrated Security = SSPI;");
            //IAzManStore store = storage.GetStore("Store Stress Test");
            //NetSqlAzMan.SnapIn.Printing.ptItemAuthorizations doc = new NetSqlAzMan.SnapIn.Printing.ptItemAuthorizations();
            //doc.Applications = new IAzManApplication[] {
            //    store.GetApplication("Application0")
            //    //,store.GetApplication("Application1"),
            //    //store.GetApplication("Application2"),
            //    //store.GetApplication("Application3"),
            //    //store.GetApplication("Application4")
            //};
            //frmPrint frm = new frmPrint();
            //frm.Document = doc;
            //frm.ShowDialog(this);

            IAzManStorage storage = new SqlAzManStorage("data source=.;Initial Catalog=NetSqlAzManStorage;Integrated Security = SSPI;");
            IAzManStore store = storage.GetStore("Eidos");
            NetSqlAzMan.SnapIn.Printing.ptEffectivePermissions doc = new NetSqlAzMan.SnapIn.Printing.ptEffectivePermissions();
            doc.Applications = new IAzManApplication[] {
                store.GetApplication("DB Persone")
                //,store.GetApplication("Application1"),
                //store.GetApplication("Application2"),
                //store.GetApplication("Application3"),
                //store.GetApplication("Application4")
            };
            frmPrint frm = new frmPrint();
            frm.Document = doc;
            frm.ShowDialog(this);
        }
コード例 #15
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
 private void button1_Click_2(object sender, EventArgs e)
 {
     IAzManStorage storage = new SqlAzManStorage("data source=.;Initial Catalog=NetSqlAzManStorage;Integrated Security = SSPI;");
     IAzManStore store = storage.GetStore("Store Stress Test");
     foreach (KeyValuePair<string, bool> kvp in store.GetManagers())
     {
         MessageBox.Show(String.Format("Manager: {0} IsSqlRole: {1}", kvp.Key, kvp.Value));
     }
     foreach (KeyValuePair<string, bool> kvp in store.GetUsers())
     {
         MessageBox.Show(String.Format("User: {0} IsSqlRole: {1}", kvp.Key, kvp.Value));
     }
     foreach (KeyValuePair<string, bool> kvp in store.GetReaders())
     {
         MessageBox.Show(String.Format("Reader: {0} IsSqlRole: {1}", kvp.Key, kvp.Value));
     }
     IAzManApplication app = store["Application1"];
     foreach (KeyValuePair<string, bool> kvp in app.GetManagers())
     {
         MessageBox.Show(String.Format("Manager: {0} IsSqlRole: {1}", kvp.Key, kvp.Value));
     }
     foreach (KeyValuePair<string, bool> kvp in app.GetUsers())
     {
         MessageBox.Show(String.Format("User: {0} IsSqlRole: {1}", kvp.Key, kvp.Value));
     }
     foreach (KeyValuePair<string, bool> kvp in app.GetReaders())
     {
         MessageBox.Show(String.Format("Reader: {0} IsSqlRole: {1}", kvp.Key, kvp.Value));
     }
 }
コード例 #16
0
 protected void btnDeleteStore_Click(object sender, EventArgs e)
 {
     IAzManStorage storage = new SqlAzManStorage(ConfigurationManager.ConnectionStrings["NetSqlAzManStorage"].ConnectionString);
     storage["Store Created Programmatically"].Delete();
 }
コード例 #17
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
 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);
 }
コード例 #18
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
        private void btnDBGetUsers_Click(object sender, EventArgs e)
        {
            this.textBox1.Text = String.Empty;
            IAzManStorage storage = new SqlAzManStorage("data source=EIDOS-NBAFR;Initial Catalog=NetSqlAzManStorage;Integrated Security = SSPI;");
            IAzManStore store = storage["My Store"];

            IAzManDBUser dbu = store.GetDBUser(store.GetStoreGroup("sg1").SID);
            //IAzManDBUser[] dbUsers = store. app.GetDBUsers();
            //foreach (IAzManDBUser dbU in dbUsers)
            //{

            //    this.textBox1.Text += String.Format("Sid: {0} - Name: {1}\r\n", dbU.CustomSid.StringValue, dbU.UserName);
            //}
            ////MessageBox.Show(app.GetDBUser("andrea").CustomSid.StringValue);
            //WindowsIdentity win = WindowsIdentity.GetCurrent();
            ////app.GetItem("ResponsabileUO").CreateAuthorization(new SqlAzManSID(win.User), WhereDefined.LDAP, app.GetDBUser("a.ferendeles").CustomSid, WhereDefined.Database, AuthorizationType.AllowWithDelegation, null, null);
            ////AuthorizationType auth = storage.CheckAccess("NetSqlAzManStore", "ApplicazioneSia", "Delega", storage.GetDBUser("a.ferendeles"), DateTime.Now, true);
            ////MessageBox.Show(auth.ToString());
        }
コード例 #19
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
        /// <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();
        }
コード例 #20
0
ファイル: UserAccountService.cs プロジェクト: robela/cats
        public List<Application> GetUserPermissions(string UserName)
        {
            var apps = new List<Application>();
            //try
            //{
                const string store = "CATS";

                string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["CatsContext"].ConnectionString;
                IAzManStorage storage = new SqlAzManStorage(connectionString);
                IAzManStore mystore = storage.GetStore(store); //or storage["My Store"]
                // IAzManApplication myapp = mystore.GetApplication(application);

                List<IAzManApplication> Applications = mystore.GetApplications().ToList();

                //_provider.Initialize("AuthorizationRoleProvider", ConfigureAuthorizationRoleProvider("CATS","Early warning"));

                //Dictionary<string, IAzManApplication> Applications = _provider.GetStorage().Stores["CATS"].Applications;
                foreach (var app in Applications)
                {
                    apps.Add(new Application() { ApplicationName = app.Name, Roles = GetUserPermissions(UserName, "CATS", app.Name) });
                }

            return apps;
            //}
            //catch(Exception ex)
            //{
            //    var s = ex.Message;
            //    return apps;
            //}
        }
コード例 #21
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
 private void btnCheckStoreAccess_Click(object sender, EventArgs e)
 {
     IAzManStorage storage = new SqlAzManStorage("data source=.;Initial Catalog=NetSqlAzManStorage;Integrated Security = SSPI;");
     foreach (IAzManStore store in storage.GetStores())
     {
         //MessageBox.Show(String.Format("Store: {0} - Access: {1}", store.Name, store.CheckStoreAccess(WindowsIdentity.GetCurrent(), DateTime.Now)));
         store.CheckStoreAccess(WindowsIdentity.GetCurrent(), DateTime.Now);
         foreach (IAzManApplication application in store.GetApplications())
         {
             //MessageBox.Show(String.Format("Application: {0} - Access: {1}", application.Name, application.CheckApplicationAccess(WindowsIdentity.GetCurrent(), DateTime.Now)));
             application.CheckApplicationAccess(WindowsIdentity.GetCurrent(), DateTime.Now);
         }
     }
 }
コード例 #22
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
 private void btnCheckAccessTest_Click(object sender, EventArgs e)
 {
     //IAzManStorage storage = new SqlAzManStorage("data source=.;Initial Catalog=NetSqlAzManStorage;Integrated Security = SSPI;");
     //List<KeyValuePair<string, string>> attributes;
     //var auth = storage.CheckAccess("AET Authorization Store", "Trading Hub", "Create Deal", WindowsIdentity.GetCurrent(), DateTime.Now, false, out attributes);
     //return;
     frmCheckAccessTest frm = new frmCheckAccessTest();
     IAzManStorage storage = new SqlAzManStorage("data source=(local);Initial Catalog=NetSqlAzManStorage;Integrated Security = SSPI;");
     //IAzManStore store = storage.GetStore("Sistel-1Sez");
     //frm.application = store.GetApplication("Perseo.Net");
     IAzManStore store = storage.GetStore("Eidos");
     frm.application = store.GetApplication("DB persone");
     frm.ShowDialog();
 }
コード例 #23
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
        private void btnACL_Click(object sender, EventArgs e)
        {
            try
            {

                //string[] users = DirectoryServicesUtils.GetAllDomainUsers();

                //IAzManStorage storage = new SqlAzManStorage("data source=.;Initial Catalog=NetSqlAzManStorage;Integrated Security = SSPI;");
                //IAzManDBUser dbUser1 = storage.GetDBUser(new SqlAzManSID(this.GetBytesFromInt32(1), true));
                //IAzManDBUser dbUser2 = storage.GetDBUser(new SqlAzManSID(this.GetBytesFromInt32(2), true));
                //AuthorizationType auth1 = storage.CheckAccess("Eidos", "DB Persone", "Accesso", dbUser1, DateTime.Now, false);
                //AuthorizationType auth2 = storage.CheckAccess("Eidos", "DB Persone", "Accesso", dbUser1, DateTime.Now, false);
                //string cs = "data source=(local);Initial Catalog=NetSqlAzManStorage;Integrated Security=SSPI";
                string cs = "data source=.;Initial Catalog=NetSqlAzManStorage;Integrated Security=SSPI";
                var ctx = new[] { new KeyValuePair<string, object>("Value1", "111"), new KeyValuePair<string, object>("Value2", "222") };
                IAzManStorage storage = new SqlAzManStorage(cs);
                //DateTime dt = new DateTime(2009, 05, 01);
                //AuthorizationType authz = storage.CheckAccess("Eidos", "DB Persone", "Super utente senza dati retributivi", WindowsIdentity.GetCurrent(), dt, false);

                //authz = upcTest.CheckAccess("Super utente senza dati retributivi", dt);
                //MessageBox.Show(authz.ToString());
                DateTime t1, t2;
                ////return;
                t1 = DateTime.Now;
                StorageCache sc = new StorageCache(cs);
                sc.BuildStorageCache();
                //t2 = DateTime.Now;
                ////MessageBox.Show((t2 - t1).TotalMilliseconds.ToString());
                //t1 = DateTime.Now;
                //UserPermissionCache uupc = new UserPermissionCache(storage, "Eidos", "DB Persone", WindowsIdentity.GetCurrent(), true, true);
                t2 = DateTime.Now;
                //MessageBox.Show((t2 - t1).TotalMilliseconds.ToString());
                //return;
                //t1 = DateTime.Now;
                //UserPermissionCache upcTest = new UserPermissionCache(storage, "Eidos", "DB Persone", WindowsIdentity.GetCurrent(), true, true, ctx);
                //t2 = DateTime.Now;
                //MessageBox.Show((t2 - t1).TotalMilliseconds.ToString());

                //t1 = DateTime.Now;
                //for (int i = 0; i < 1000; i++)
                //{
                //    upcTest.CheckAccess("Accesso", DateTime.Now);
                //}
                //t2 = DateTime.Now;
                //MessageBox.Show((t2 - t1).TotalMilliseconds.ToString());

                string ssid = WindowsIdentity.GetCurrent().GetUserBinarySSid();
                string[] gsid = WindowsIdentity.GetCurrent().GetGroupsBinarySSid();

                //t1 = DateTime.Now;
                //for (int i = 0; i < 1000; i++)
                //{
                //    sc.CheckAccess("Eidos", "DB Persone", "Gestore", ssid, gsid, DateTime.Now, false);
                //}
                //t2 = DateTime.Now;
                //MessageBox.Show((t2 - t1).TotalMilliseconds.ToString());

                //sr.CacheServiceClient csc = new NetSqlAzMan_WinTest.sr.CacheServiceClient();
                //csc.Open();
                //t1 = DateTime.Now;
                ////for (int i = 0; i < 1000; i++)
                ////{
                ////var aauu = csc.CheckAccessForWindowsUsersWithoutAttributesRetrieve("ZZEntDataSvcs", "CommissionFeeTax", "Editor", ssid, gsid, DateTime.Now, false, null);
                //var aauu = sc.CheckAccess("Eidos", "DB Persone", "Accesso", ssid, gsid, DateTime.Now, false, null);
                //    //csc.GetAuthorizedItemsForWindowsUsers("Eidos", "DB Persone", ssid, gsid, DateTime.Now, null);
                ////}
                //t2 = DateTime.Now;
                ////MessageBox.Show((t2 - t1).TotalMilliseconds.ToString());
                //csc.Close();

                //t1 = DateTime.Now;
                //for (int i = 0; i < 1000; i++)
                //{
                //    storage.CheckAccess("Eidos", "DB Persone", "Gestore", WindowsIdentity.GetCurrent(), DateTime.Now, false);
                //}
                //t2 = DateTime.Now;
                //MessageBox.Show((t2 - t1).TotalMilliseconds.ToString());
                //return;

                //DateTime dt = DateTime.Now;
                //foreach (string user in users)
                //{
                //    WindowsIdentity win = new WindowsIdentity(user);
                //    sc.CheckAccess("Eidos", "DB Persone", "Gestore", win.GetUserBinarySSid(), win.GetGroupsBinarySSid(), DateTime.Now, false);
                //}
                //TimeSpan ts = DateTime.Now.Subtract(dt);
                //var seconds = ts.TotalSeconds;

                //
                //upcTest.CheckAccess("Accesso", DateTime.Now);

                List<KeyValuePair<string, string>> attributes1;
                List<KeyValuePair<string, string>> attributes2;
                List<KeyValuePair<string, string>> attributes3;
                //int h;

                foreach (var store in storage.Stores)
                {
                    foreach (var application in store.Value.Applications)
                    {
                        UserPermissionCache upc = new UserPermissionCache(storage, store.Value.Name, application.Value.Name, WindowsIdentity.GetCurrent(), true, true, ctx);
                        foreach (var item in application.Value.Items)
                        {
                            this.textBox1.Text += String.Format("Store: {0}\tApplication: {1}\tItem: {2}\r\n", store.Key, application.Key, item.Key);
                            AuthorizationType auth1 = sc.CheckAccess(store.Value.Name, application.Value.Name, item.Value.Name, WindowsIdentity.GetCurrent().GetUserBinarySSid(), WindowsIdentity.GetCurrent().GetGroupsBinarySSid(), DateTime.Now, false, out attributes1, ctx);
                            AuthorizationType auth2 = storage.CheckAccess(store.Value.Name, application.Value.Name, item.Value.Name, WindowsIdentity.GetCurrent(), DateTime.Now, false, out attributes2, ctx);
                            AuthorizationType auth3 = upc.CheckAccess(item.Value.Name, DateTime.Now, out attributes3);
                            //if (item.Key == "Method1")
                            //    h = 9;
                            this.detectedDifferences(auth1, attributes1, auth2, attributes2);
                            this.detectedDifferences(auth2, attributes2, auth3, attributes3);
                            this.detectedDifferences(auth1, attributes1, auth3, attributes3);

                        }
                    }
                }
                MessageBox.Show("Done");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #24
0
ファイル: UserAccountService.cs プロジェクト: robela/cats
        public List<Role> GetUserPermissions(string userName, string store, string application)
        {
            //throw new NotImplementedException();
            //string userSid = userId.ToString("X");
            //string zeroes = string.Empty;
            //for (int start = 0; start < 8 - userSid.Length; start++)
            //    zeroes += "0";
            string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["CatsContext"].ConnectionString;

            IAzManStorage AzManStore = new SqlAzManStorage(connectionString);
            StorageCache storage = new StorageCache(connectionString);

            //storage.BuildStorageCache(store, application);
            //new AuthorizedItem(){}
            //AuthorizedItem[] items = storage.GetAuthorizedItems(store, application, AzManStore.GetDBUser(userName).CustomSid.StringValue, DateTime.Now);

            //AuthorizedItem[] items = storage.GetAuthorizedItems("CATS", application, AzManStore.GetDBUser(userName).CustomSid.StringValue, DateTime.Now, null);

            var allItems = storage.Storage.GetStore(store).GetApplication(application).Items;

            ////var d = CheckAccess(AzManStore.GetDBUser(userName), application, "EW Coordinator", AzManStore);

            var roleItems = (
                          from t in allItems
                          where t.Value.ItemType == ItemType.Role
                          select t
                         );

            var roles = new List<Role>();

            foreach (var item in roleItems)
            {
                var r = new Role();
                r.RoleName = item.Value.Name;
                r.IsChecked = CheckAccess(AzManStore.GetDBUser(userName), application, item.Value.Name, AzManStore);
                roles.Add(r);
            }

            //AuthorizedItem[] items = storage.GetAuthorizedItems();
            //var f =(from t in items where t.Authorization == AuthorizationType.Allow && t.Type == ItemType.Role  select new Role { RoleName = t.Name }).ToList();
            return roles;
        }
コード例 #25
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
 private void btnEventHandling_Click(object sender, EventArgs e)
 {
     //SqlAzManENS.ApplicationUpdated += new ApplicationUpdatedDelegate(SqlAzManENS_ApplicationUpdated);
     IAzManStorage storage = new SqlAzManStorage("data source=.;Initial Catalog=NetSqlAzManStorage;Integrated Security = SSPI;");
     IAzManStore store = storage.GetStore("Store Stress Test");
     IAzManApplication application = store.GetApplication("Application0");
     application.ApplicationUpdated += new NetSqlAzMan.ENS.ApplicationUpdatedDelegate(application_Updated);
     application.Update("New Description");
     MessageBox.Show("Descrizione dell'Applicazione modificata !");
 }
コード例 #26
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
 private void btnTestImport_Click(object sender, EventArgs e)
 {
     OpenFileDialog openFileDialog = new OpenFileDialog();
     openFileDialog.DefaultExt = "xml";
     openFileDialog.FileName = "NetSqlAzMan.xml";
     openFileDialog.Filter = "Xml files|*.xml|All files|*.*";
     openFileDialog.SupportMultiDottedExtensions = true;
     openFileDialog.Title = "Import from ...";
     DialogResult dr = openFileDialog.ShowDialog(this);
     if (dr == DialogResult.OK)
     {
         frmImportOptions frm = new frmImportOptions();
         IAzManStorage storage = new SqlAzManStorage("data source=.;Initial Catalog=NetSqlAzManStorage;Integrated Security = SSPI;");
         IAzManStore store = storage.GetStore("Eidos");
         frm.importIntoObject = store;
         frm.fileName = openFileDialog.FileName;
         frm.ShowDialog();
     }
 }
コード例 #27
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
        private void btnExport_Click(object sender, EventArgs e)
        {
            IAzManStorage storage = new SqlAzManStorage("data source=.;Initial Catalog=NetSqlAzManStorage;user id=sa;password="******"Eidos").GetApplication("Feedback");

            frmExportOptions frm = new frmExportOptions();

            frmExport frmwait = new frmExport();
            frmwait.ShowDialog(null, "c:\\netsqlazman.xml", new IAzManExport[] { app }, true, false, true, app.Store.Storage);
        }
コード例 #28
0
ファイル: UserAccountService.cs プロジェクト: robela/cats
        public void AssociateRoles(string username)
        {
            string store = "CATS";
            string application = "Early Warning";

            string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["CatsContext"].ConnectionString;

            IAzManStorage AzManStore = new NetSqlAzMan.SqlAzManStorage(connectionString);
            NetSqlAzMan.Cache.StorageCache storage = new NetSqlAzMan.Cache.StorageCache(connectionString);
            storage.BuildStorageCache(store, application);

            //storage.GetAuthorizedItems()
            // NetSqlAzMan.Cache.AuthorizedItem[] items = storage.GetAuthorizedItems(store, application, AzManStore.GetDBUser(username).CustomSid.StringValue, DateTime.Now);
            //var users = new string[] {"Me"};
            var roles = new string[] { "Create" };

            AddUserToRoles("me", roles, store, application);
        }
コード例 #29
0
ファイル: Form1.cs プロジェクト: JamesTryand/NetSqlAzMan
 private void btnGenerateCheckAccessHelper_Click(object sender, EventArgs e)
 {
     IAzManStorage storage = new SqlAzManStorage("data source=EIDOS-NBAFR;Initial Catalog=NetSqlAzManStorage;Integrated Security = SSPI;");
     IAzManApplication application = storage["Eidos"]["DB Persone"];
     CodeCompileUnit ccu = NetSqlAzMan.CodeDom.CodeDomGenerator.GenerateItemConstants("MyApplication.NetSqlHelper", true, true, application, NetSqlAzMan.CodeDom.Language.CSharp);
     string code = NetSqlAzMan.CodeDom.CodeDomGenerator.GenerateSourceCode(ccu, NetSqlAzMan.CodeDom.Language.CSharp);
     this.textBox1.Text = code;
 }
コード例 #30
0
 protected void btnPickUpItemsCount_Click(object sender, EventArgs e)
 {
     IAzManStorage storage = new SqlAzManStorage(ConfigurationManager.ConnectionStrings["NetSqlAzManStorage"].ConnectionString);
     this.txtItemsCount.Text = storage["Store Created Programmatically"]["App 1"].GetItems().Length.ToString();
 }
コード例 #31
0
ファイル: UserAccountService.cs プロジェクト: robela/cats
        public bool AddRole(string user, string application, string role)
        {
            const string store = "CATS";

            string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["CatsContext"].ConnectionString;
            IAzManStorage storage = new SqlAzManStorage(connectionString);
            IAzManStore mystore = storage.GetStore(store); //or storage["My Store"]
            IAzManApplication myapp = mystore.GetApplication(application);

            //mystore.GetApplications();
            IAzManItem azManRole = myapp.GetItem(role);

            IAzManAuthorization dele = azManRole.CreateAuthorization(
                                                mystore.GetDBUser("Admin").CustomSid,
                                                WhereDefined.Database,
                                                mystore.GetDBUser(user).CustomSid,
                                                WhereDefined.Database,
                                                AuthorizationType.AllowWithDelegation,
                                                null,
                                                null
                                               );

            //IAzManAuthorization del = azManRole.CreateDelegateAuthorization(mystore.GetDBUser("Admin"),mystore.GetDBUser(user).CustomSid,RestrictedAuthorizationType.Allow, null,null);

            return true;
        }