我正在尝试使用 Redmine .NET API 从 ASP.NET MVC 应用程序管理 Redmine .
MVC 应用程序需要允许用户从其 UI 创建和编辑 Issue
。 (MVC 应用程序与 Redmine 具有相同的用户。)以下代码添加了一个新问题,但作者始终设置为 API key 的所有者。
using Redmine.Net.Api;
using Redmine.Net.Api.Types;
RedmineManager manager = new RedmineManager(host, apiKey);
Issue newIssue = new Issue();
// Set issue details
newIssue.Author = new IdentifiableName();
var user = manager.GetUsers(UserStatus.STATUS_ACTIVE, loginUserName).FirstOrDefault();
newIssue.Author.Id = user.Id;
manager.CreateObject<Issue>(newIssue);
我想将登录用户设置为问题作者。
有人知道怎么做吗?
谢谢。
最佳答案
Redmine 不允许设置问题的作者字段。它始终设置为创建问题时的当前用户。
最简单的解决方案是使用作者的凭据来创建 API 问题(即他们的用户名/密码或他们的 API key )。
如果那不可能,您可以使用 Redmine 的 User impersonation特征。这允许您将管理员的 API token 用于您的所有请求。通过在您的 POST
请求中将 X-Redmine-Switch-User
header 设置为另一个用户的登录名,您可以以另一个用户的身份创建问题。
虽然我没有使用您的 .NET 客户端库的经验,但他们似乎支持此功能,正如他们的 README 中提到的那样。看来您可以使用 ImpersonateUser
property 设置登录名RedmineManager 类
。
关于c# - 通过 Redmine .NET API 设置新问题的作者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33589790/