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); } }
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); } }
/// <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); }