1*15ad9651SPetersSharp# DokuWikiConnector 2*15ad9651SPetersSharp[](https://github.com/PetersSharp/DokuWikiConnector/releases/latest) 3*15ad9651SPetersSharp[](https://github.com/PetersSharp/stCoCServer/issues) 4*15ad9651SPetersSharp[](https://github.com/PetersSharp/stCoCServer/blob/master/LICENSE) 5993e64a2SPetersSharp 6*15ad9651SPetersSharp####.NET RPC-XML DokuWiki Connector API & Auth manager 7993e64a2SPetersSharp 8*15ad9651SPetersSharp this part of stCoCServer, see [stCoCServer](https://github.com/PetersSharp/stCoCServer) 9993e64a2SPetersSharp 10*15ad9651SPetersSharp####Features: 110418568dSPetersSharp 12*15ad9651SPetersSharp* API .NET library allows to XML-RPC connect to remote DokuWiki. 13*15ad9651SPetersSharp* Support all DokuWiki API operations. 14*15ad9651SPetersSharp* Local DokuWiki file credential authenticate managements. 15*15ad9651SPetersSharp 16*15ad9651SPetersSharp* DokuWikiConnector [source](https://github.com/PetersSharp/stCoCServer/tree/master/stCoCServer/stExtLib/stDokuWikiConnector-dll) 17*15ad9651SPetersSharp* DokuWikiConnector [Test suite](https://github.com/PetersSharp/stCoCServer/tree/master/stCoCServer/stTest/TestDokuWikiConnector) 18*15ad9651SPetersSharp* DokuWikiConnector [Method Documentation](https://github.com/PetersSharp/stCoCServer/tree/master/stCoCServer/stExtLib/stDokuWikiConnector-dll/Doc) 19*15ad9651SPetersSharp* Plugins publish [dokuwiki.org](https://www.dokuwiki.org/plugins:stdokuwikiconnector?s[]=dokuwikiconnector) 20*15ad9651SPetersSharp 21*15ad9651SPetersSharp####Example use stDokuWiki.Connector: 220418568dSPetersSharp 230418568dSPetersSharp```csharp 240418568dSPetersSharp 25*15ad9651SPetersSharpusing stDokuWiki.Connector; 26*15ad9651SPetersSharpusing stDokuWiki.Data; 270418568dSPetersSharp 28*15ad9651SPetersSharp RpcXml xml = new RpcXml("http://you-dokuwiki-url.org/", "userquest", "userquest"); 29*15ad9651SPetersSharp XMLMethodPageList dokuList = xml.DokuPageList("wiki:") as XMLMethodPageList; 30*15ad9651SPetersSharp foreach (var items in dokuList.Params.Param.Value.Array.Data.Value) 310418568dSPetersSharp { 32*15ad9651SPetersSharp foreach (var item in items.Struct.Member) 33*15ad9651SPetersSharp { 34*15ad9651SPetersSharp Console.WriteLine( 35*15ad9651SPetersSharp item.Name + 36*15ad9651SPetersSharp ((string.IsNullOrWhiteSpace(item.Value.Int)) ? " " : " [" + item.Value.Int + "] ") + 37*15ad9651SPetersSharp ((string.IsNullOrWhiteSpace(item.Value.String)) ? "" : item.Value.String) 38*15ad9651SPetersSharp ); 390418568dSPetersSharp } 40*15ad9651SPetersSharp } 41*15ad9651SPetersSharp 420418568dSPetersSharp``` 43f7c62807SPetersSharp 44*15ad9651SPetersSharp####Example use stDokuWiki.AuthManager: 45f7c62807SPetersSharp 46*15ad9651SPetersSharp```csharp 47*15ad9651SPetersSharp 48*15ad9651SPetersSharpusing stDokuWiki.AuthManager 49*15ad9651SPetersSharpusing stDokuWiki.Data; 50*15ad9651SPetersSharp 51*15ad9651SPetersSharp DokuAuthManager dam; 52*15ad9651SPetersSharp try 53*15ad9651SPetersSharp { 54*15ad9651SPetersSharp dam = new DokuAuthManager("/path/to/dokuwiki/root/dir","mygroup"); 55*15ad9651SPetersSharp 56*15ad9651SPetersSharp List<DokuAuthUser> uadd = new List<DokuAuthUser>() 57*15ad9651SPetersSharp { 58*15ad9651SPetersSharp new DokuAuthUser() { Login = "userLogin1", Password = "pwd1234", Name = "Nikolas", Email = "Nikolas@nomail.com", Group = "personalGroup"}, 59*15ad9651SPetersSharp new DokuAuthUser() { ... }, 60*15ad9651SPetersSharp }; 61*15ad9651SPetersSharp List<DokuAuthUser> udel = new List<DokuAuthUser>() 62*15ad9651SPetersSharp { 63*15ad9651SPetersSharp new DokuAuthUser() { Login = "userLogin2" }, 64*15ad9651SPetersSharp new DokuAuthUser() { ... }, 65*15ad9651SPetersSharp }; 66*15ad9651SPetersSharp 67*15ad9651SPetersSharp dam.UserAdd(uadd); 68*15ad9651SPetersSharp dam.UserDelete(udel); 69*15ad9651SPetersSharp dam.AuthSave(); 70*15ad9651SPetersSharp 71*15ad9651SPetersSharp DokuAuthUser dau = dam.UserGet("Nikolas"); 72*15ad9651SPetersSharp if (dau != null) 73*15ad9651SPetersSharp { 74*15ad9651SPetersSharp Console.WriteLine( 75*15ad9651SPetersSharp dau.Name + " : " + dau.Email 76*15ad9651SPetersSharp ); 77*15ad9651SPetersSharp } 78*15ad9651SPetersSharp } 79*15ad9651SPetersSharp catch (RpcXmlException e) 80*15ad9651SPetersSharp { 81*15ad9651SPetersSharp Console.WriteLine("[" + e.errcode + "] " +e.Message); return; 82*15ad9651SPetersSharp } 83*15ad9651SPetersSharp catch (Exception e) 84*15ad9651SPetersSharp { 85*15ad9651SPetersSharp Console.WriteLine(e.Message); return; 86*15ad9651SPetersSharp } 87*15ad9651SPetersSharp 88*15ad9651SPetersSharp``` 89