Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置新版本';作者通过Redmine.NETAPI_C#_Redmine_Redmine Api - Fatal编程技术网

C# 设置新版本';作者通过Redmine.NETAPI

C# 设置新版本';作者通过Redmine.NETAPI,c#,redmine,redmine-api,C#,Redmine,Redmine Api,我正在尝试使用从ASP.NET MVC应用程序管理Redmine MVC应用程序需要允许用户从其UI创建和编辑问题。(MVC应用程序拥有与Redmine相同的用户。)以下代码添加了一个新版本,但作者始终被设置为API密钥的所有者 using Redmine.Net.Api; using Redmine.Net.Api.Types; RedmineManager manager = new RedmineManager(host, apiKey); Issue newIssue = new I

我正在尝试使用从ASP.NET MVC应用程序管理Redmine

MVC应用程序需要允许用户从其UI创建和编辑
问题
。(MVC应用程序拥有与Redmine相同的用户。)以下代码添加了一个新版本,但作者始终被设置为API密钥的所有者

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.Net.Api;
使用Redmine.Net.Api.Types;
RedmineManager=新的RedmineManager(主机,apiKey);
Issue newIssue=新发行();
//设置问题详细信息
newIssue.Author=新的可识别名称();
var user=manager.GetUsers(UserStatus.STATUS_ACTIVE,loginUserName).FirstOrDefault();
newIssue.Author.Id=user.Id;
manager.CreateObject(新发行);
我想将登录用户设置为问题作者。
有人知道怎么做吗?

谢谢。

Redmine不允许设置问题的作者字段。在问题创建时,它始终设置为当前用户

最简单的解决方案是使用作者的凭据创建API问题(即用户名/密码或API密钥)

如果不可能,您可以使用Redmine的功能。这允许您对所有请求使用管理员的API令牌。通过将
X-Redmine-Switch-User
标题设置为您的
POST
请求中另一个用户的登录名,您可以作为另一个用户创建问题


虽然我没有使用您的.NET客户端库的经验,但他们似乎支持自述文件中提到的此功能。似乎您可以使用
RedmineManager类的设置登录名

多亏了@Holger刚才的回答,我找到了答案

在添加新版本之前,我必须将作者用户的
登录设置为
RedmineManager.ImpersonateUser

var user = manager.GetUsers(UserStatus.STATUS_ACTIVE, loginUserName).FirstOrDefault();
manager.ImpersonateUser = user.Login;

manager.CreateObject<Issue>(newIssue);
var user=manager.GetUsers(UserStatus.STATUS_ACTIVE,loginUserName).FirstOrDefault();
manager.ImpersonateUser=user.Login;
manager.CreateObject(新发行);
这很有效,作者已正确地更改为模拟用户

在此之后,我必须将
null
设置为
RedmineManager.ImpersonateUser
以重置它