分享

C#获取openfire的用户,包括增、删、改等

 WindySky 2016-03-14

目前比较简单的做法就是通过openfire的插件User Service,我们用C#http请求来获取用户列表,返回的是一个xml文件。

插件地址:http://www./projects/openfire/plugins.jsp

安装插件有两种方式:

1.直接到官网下载userservice.jar文件,然后通过管理控制平台上传插件。

2.直接在管理控制平台安装此插件,在插件选项卡里有个“有效的插件”菜单,里边有很多插件。


一:首先需要安装openfire的服务器,包括配置好数据库测试是否可以运行服务器,以win7为例,到开始菜单找到“Openfire Server”点击运行,然后点击“Star”启动服务器,再点击“Laumch Admin”会跳转到管理控制平台,输入管理员密码登录。如下图:


二:在管理控制平台找到选项卡“插件”,里边有我们需要安装的一个User Service插件,如果安装过了会显示已经安装的哪些插件,没有安装,需要点击左侧菜单“有效的插件”,在列表里找到此插件进行安装,可能有点慢,稍等即可。如果在有效的插件列表没有发现很多的插件,那么你需要重新安装openfire服务器或者升级最新版本。



三:在选项卡“服务器”找到“服务器设置”下有个菜单“User Service”,说明安装插件成功,但是还是需要进行设置才能通过端口进行访问,不然无法访问或者报错401未授权等。设置:Enabled - User service requests will be processed. 启用、勾选HTTP basic auth - User service REST authentication with Openfire admin account. 如果选择Secret key auth,那C#写着太麻烦,通过访问接口需要传Secret key的值,否则就是报错401。

还可以在系统属性里添加进行设置接口是否启用,需要设置2项值如下图:



下面就是开始通过C#代码进行访问:

[csharp] view plain copy
在CODE上查看代码片派生到我的代码片
  1. string url = "http://127.0.0.1:9090/plugins/userService/users";  
  2.             WebRequest req = WebRequest.Create(url);  
  3.             string username = "admin";  
  4.             string password = "admin";  
  5.             string usernamePassword = username + ":" + password;  
  6.             CredentialCache mycache = new CredentialCache();  
  7.             mycache.Add(new Uri(url), "Basic", new NetworkCredential(username, password));  
  8.             req.Credentials = mycache;  
  9.             req.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(usernamePassword)));  
  10.             WebResponse result = null;  
  11.   
  12.             try  
  13.             {  
  14.                 result = req.GetResponse();  
  15.                 Stream ReceiveStream = result.GetResponseStream();  
  16.   
  17.                 //read the stream into a string  
  18.                 StreamReader sr = new StreamReader(ReceiveStream);  
  19.                 string resultstring = sr.ReadToEnd();  
  20.   
  21.             }  
  22.             catch (Exception exp)  
  23.             {  
  24.                 Console.WriteLine(exp.Message);  
  25.             }  
  26.             finally  
  27.             {  
  28.                 if (result != null)  
  29.                 {  
  30.                     result.Close();  
  31.                 }  
  32.             }  

最后会返回一个xml的文件,里边是所有用户的信息。

至于新增、删除的接口就不做案例里,你可以通过管理控制平台查找demo,里边有介绍如何访问接口,查看地址:http://127.0.0.1:9090/plugin-admin.jsp?plugin=userservice&showReadme=true&decorator=none

如下图点击图标就可以查看此插件的demo:




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多