Пример #1
0
        public void testInitEmptyByInputStream()
        {
            Enforcer e = new Enforcer();

            Model m = CoreEnforcer.NewModel();

            m.AddDef("r", "r", "sub, obj, act");
            m.AddDef("p", "p", "sub, obj, act");
            m.AddDef("e", "e", "some(where (p.eft == allow))");
            m.AddDef("m", "m", "r.sub == p.sub && keyMatch(r.obj, p.obj) && regexMatch(r.act, p.act)");

            using (var fs = new FileStream("examples/keymatch_policy.csv", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                IAdapter a = new DefaultFileAdapter(fs);
                e.SetModel(m);
                e.SetAdapter(a);
                e.LoadPolicy();

                testEnforce(e, "alice", "/alice_data/resource1", "GET", true);
            }
        }
Пример #2
0
        public async Task TestInitEmptyByInputStreamAsync()
        {
            var e = new Enforcer();

            var m = Model.Model.CreateDefault();

            m.AddDef("r", "r", "sub, obj, act");
            m.AddDef("p", "p", "sub, obj, act");
            m.AddDef("e", "e", "some(where (p.eft == allow))");
            m.AddDef("m", "m", "r.sub == p.sub && keyMatch(r.obj, p.obj) && regexMatch(r.act, p.act)");

            using (var fs = new FileStream("examples/keymatch_policy.csv", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                IAdapter a = new DefaultFileAdapter(fs);
                e.SetModel(m);
                e.SetAdapter(a);
                await e.LoadPolicyAsync();

                await TestEnforceAsync(e, "alice", "/alice_data/resource1", "GET", true);
            }
        }
Пример #3
0
        /// <summary>
        /// 创建casbin
        /// </summary>
        /// <returns></returns>
        public static Enforcer createEnforcer()
        {
            var e = new Enforcer();
            var m = NetCasbin.Model.Model.CreateDefault();

            m.AddDef("r", "r", "sub, obj, act");
            m.AddDef("p", "p", "sub, obj, act");
            m.AddDef("e", "e", "some(where (p.eft == allow))");
            m.AddDef("m", "m", "r.sub == p.sub && keyMatch(r.obj, p.obj) && regexMatch(r.act, p.act)");
            var csv = Path.Combine(WebRootPath, CasBinPolicyFile);

            if (!File.Exists(csv))
            {
                File.CreateText(csv);
            }

            IAdapter a = new DefaultFileAdapter(csv);

            e.SetModel(m);
            e.SetAdapter(a);
            e.LoadPolicy();
            return(e);
        }