3

Redmine .NET APIを使用して、ASP.NET MVC アプリケーションから Redmine を管理しようとしています。

IssueMVC アプリケーションでは、ユーザーがその 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);

ログインユーザーをIssue Authorに設定したいです。
誰もこれを行う方法を知っていますか?
ありがとう。

4

2 に答える 2

3

Redmine では、Issue の作成者フィールドを設定できません。課題の作成時に、常に現在のユーザーに設定されます。

最も簡単な解決策は、作成者の資格情報を使用して API の問題を作成することです (つまり、作成者のユーザー名/パスワードまたは API キーのいずれか)。

それが不可能な場合は、Redmine のユーザー偽装機能を使用できます。これにより、すべてのリクエストに対して管理者の API トークンを使用できます。リクエストでX-Redmine-Switch-Userヘッダーを別のユーザーのログインに設定することで、別のユーザーとして課題を作成できます。POST

あなたの .NET クライアント ライブラリの経験はありませんが、README に記載されているように、この機能をサポートしているようです。ImpersonateUserのプロパティを使用してログインを設定できるようですRedmineManager class

于 2015-11-09T17:44:36.967 に答える
1

@Holger Justの回答のおかげで、私はそれを理解しました。

新しい問題を追加するに、著者ユーザーを設定する必要がありますLoginRedmineManager.ImpersonateUser

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

manager.CreateObject<Issue>(newIssue);

これはうまく機能し、作成者は偽装ユーザーに正しく変更されました。

この後、リセットするにはに設定nullする必要があります。RedmineManager.ImpersonateUser

于 2015-11-09T22:18:00.027 に答える