c# – 获取Umbraco v7.1.4中的所有用户
发布时间:2020-12-16 02:02:26 所属栏目:百科 来源:网络整理
导读:我正在尝试检索Umbraco站点中所有用户的详细信息.这样做的目的是使内容创建者可以将用户名指定为内容的“所有者”,该内容可以由网站的匿名用户联系(使用存储的电子邮件地址后的简单“mailto”链接将用户名与内容给出的用户名匹配)创建者). 我已经能够使用以
我正在尝试检索Umbraco站点中所有用户的详细信息.这样做的目的是使内容创建者可以将用户名指定为内容的“所有者”,该内容可以由网站的匿名用户联系(使用存储的电子邮件地址后的简单“mailto”链接将用户名与内容给出的用户名匹配)创建者).
我已经能够使用以下方式获取用户详细信息: var users = umbraco.BusinessLogic.User.getAll(); 但我在Visual Studio中通过以下警告提示我: 'Umbraco.BusinessLogic.User' is obsolete: '"Use the UserService instead"' 我创建了UserService的实例,但GetAll()函数需要许多BusinessLogic函数不具备的参数. 如何让所有用户使用UserService? 有没有更好的方法让我实现我想要实现的目标? 为了澄清,这是我在已弃用的BusinessLogic中使用的以下代码: var users = umbraco.BusinessLogic.User.getAll(); var owners = Umbraco.Field("owner").ToString().Split(','); foreach (var user in users) { foreach (var owner in owners) { if (String.Equals(user.LoginName,owner)) { <div class="owner"> <a href="mailto:@user.Email">@owner</a> </div> } } } 解决方法
用户服务在Services集合中可用.如果您使用MVC视图或部分,您可以在服务中找到它.否则,您可以在ApplicationContext.Current.Services中找到它
找回它的另一种方法是: using Umbraco.Core.Services; using Umbraco.Core.Persistence; var userService = new UserService(new RepositoryFactory()); 可以在UmbracoContext.Current.Security.CurrentUser中找到当前用户 更新 要执行GetAll,您可以在视图中执行此操作: @{ var userService = ApplicationContext.Current.Services.UserService; int totalRecords; } @foreach (var user in userService.GetAll(0,100,out totalRecords)) { <h1>@(user.Name)</h1> @user.Username } 找到的用户数:@ totalRecords.ToString() 但是……记住服务将打到数据库,如果你想建立性能良好的网站,有很多用户,请考虑另一种解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |