Ich habe eine Web-API wie folgt. Wenn ich diese API aufruft, wird die UserManager.CreateAsync-Zeile nur fehlerhaft. Derselbe Code funktioniert mit der Standard/register-Methode in der MVC-Web-API.UserManager.CreateAsync funktioniert nicht, funktioniert aber von einem anderen Code-Snippet
[Route("settestaccounts")]
public async Task<IHttpActionResult> SetTestAccounts(TestAccounts TestAccount)
{
if ((TestAccount.AccountCount == 0) || (TestAccount.AccountCount < 0) || (!TestAccount.SecretKey.Equals("test")))
{
return BadRequest("Please send valid data");
}
db = new Entities();
List<string> outLogins = new List<string>();
do
{
string testLogin = null; // string.Empty;
do
{
string login = string.Format("user{0}@domain.net", GetRandomNumber(1, 10000));
testLogin = (from p in db.AspNetUsers
where p.UserName.Equals(login)
select p.Id).FirstOrDefault();
if (string.IsNullOrEmpty(testLogin))
{
outLogins.Add(login);
}
} while (testLogin != null);
} while (outLogins.Count < TestAccount.AccountCount);
foreach (string email in outLogins)
{
var newAccounts = new AccountController();
var registerAccount = new Models.RegisterBindingModel()
{
Email = email,
FirstName = "test",
LastName = "test",
Password = "Wadirere123",
ConfirmPassword = "Wadirere123",
ZipCode = Convert.ToString(94111),
RoleName = "User"
};
string confkey = ConfigurationManager.AppSettings["ConfirmEmailValidKey"];
var user = new ApplicationUser() { UserName = registerAccount.Email, Email = registerAccount.Email, FirstName = registerAccount.FirstName, LastName = registerAccount.LastName, ZipCode = registerAccount.ZipCode, RegistrationDateTime = DateTime.UtcNow };
var result = await UserManager.CreateAsync(user, registerAccount.Password);
var c = result.Errors;
// var role = await newAccounts.UserManager.AddToRoleAsync(user.Id, registerAccount.RoleName);
//ApplicationUser user = await newAccounts.UserManager.FindByEmailAsync(email.Trim());
//string code = await newAccounts.UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
//IdentityResult result = await newAccounts.UserManager.ConfirmEmailAsync(user.Id, code);
//newAccounts.UpdateDatabaseAndSendWelcomeNotification(user.Id, null, confkey, result);
}
return Ok(Newtonsoft.Json.JsonConvert.SerializeObject(new OutLogins() { Logins = outLogins }));
}
Ich benutze auch API-Überwachung und in diesem Code zeigt es, dass es interne Serverfehler 500 ist, aber nicht angibt, was der Fehler ist?
HINWEIS: Ich rufe diese API (Settestaccounts) von einem Python-Client, aber die Register-API wird auch aus Python-Code aufgerufen und das führt gut aus.
Irgendwelche Ideen?