MVC 4, Simplemembership간단한 회원 가입은 중복 된 사용자 아이디 오류 줄 WebSecurity.CreateUserAndAccount
I 사용자가 등록 할 수 있도록 상자 MVC 4 템플릿 기능의 아웃하지 않으 따라서 기업 사용을위한 웹 응용 프로그램을 구축하고 사용 . 대신 관리자 만이 액세스하여 사용자를 만들 수있는 사용자 만들기보기가 필요합니다. 레지스터 컨트롤러의 보안을 변경하고 현재 로그인 한 사용자가 기존의 Register View ...를 사용하여 사용자를 만들 수 있기를 바랬습니다. 주사위가 없습니다.
다음은 컨트롤러의 코드입니다. 나는 템플릿을 변경하지 않은 :
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_UserProfile_webpages_Membership". The conflict occurred in database "OTIS", table "dbo.webpages_Membership", column 'UserId'.
The statement has been terminated.
Line 84: try
Line 85: {
Line 86: WebSecurity.CreateUserAndAccount(
Line 87: model.UserName,
Line 88: model.Password,
Hwre은 다음과 같습니다
// POST: /Account/Register
[HttpPost]
//[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
try
{
WebSecurity.CreateUserAndAccount(
model.UserName,
model.Password,
new { FirstName = model.FirstName, LastName = model.LastName, Email = model.Email },
false
);
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Home");
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
A는 현재 로그인 한 사용자이를 통해 새 사용자를 만들려고 시도하면 오류가 (@ 라인 86)을 얻을 USERPROFILE 클래스
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required]
[Display(Name = "Last Name")]
public string LastName { get; set; }
[Display(Name = "Email")]
public string Email { get; set; }
}
WebSecurity.CurrentUserID은 현재 내가 문제를 일으키는 것입니다 생각하는, 로그인 한 사용자로 채워집니다. simplemembership provider를 사용하여 이것을 달성하는 올바른 방법은 무엇입니까?
EDIT : 익명 사용자가 등록 할 수 있도록 뒤로 이동하여 디버깅 할 때 WebSecurity.CurrentUserID가 -1이므로 여전히 동일한 오류가 발생합니다. 클래스의 UserId 필드가 [DatabaseGeneratedAttribute (DatabaseGeneratedOption.Identity)] 속성으로 장식 된 경우 중복 키는 어떻게 생성 될 수 있습니까?
관리자 계정을 시드 한 다음 등록 작업에 권한을 부여하십시오. 그러면 시드 된 관리자 만 액세스 할 수 있습니다. – Komengem
차드,이 문제를 해결 했습니까? 나는 똑같은 문제를 가지고 있으며 그것을 어떻게 해결할 지 정말로 모른다. – HenningJ
아니요, 나머지 앱을 개발하는 동안 잠시 기다렸지 만 곧 다시 돌아갈 예정입니다. –