2013-08-23 2 views
0

Im은 CreateUserAndAccount 메서드를 호출하여 사용자 이름과 암호에 String을 제공합니다. 하지만 하드 코딩 된 문자열이 null이라는 예외가 발생합니다. 어떻게 가능합니까! I-m 여기에 누락 된 항목이 있습니까?WebSecurity CreateUserAndAccount

코드 : WebSecurity.CreateUserAndAccount("Admin", "Admin", null, false);

SQLEXCEPTION : 열에 'UserPwd', 테이블 'servidb.dbo.User'NULL 값을 삽입 할 수 없습니다; 열이 널을 허용하지 않습니다. INSERT가 실패합니다.

테이블의 이름을 UserProfile에서 User 및 Password 열로 변경했습니다. 여기 실수 일 수 있니?

감사합니다.

ps : 그 밖의 표시 할 코드는 무엇인지 알 수 없습니다. 더 많은 정보가 필요하면 질문하십시오.

편집

: 사실 내가 한 :

WebSecurity.InitializeDatabaseConnection("connectionString", "User", "UserId", "UserName", autoCreateTables: true);

그리고 난은 DB 테이블 사용자가 열이 생성 확인. 내 엔티티 코드는 실제로 사용자 이름과 테이블을 제외하고, 생성 된 테이블을 소유 사용,이

[Table("User")] 
public class User 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int UserId { get; set; } 
    [Required] 
    public string UserName { get; set; } 
    [Required] 
    public string UserPwd { get; set; } 
} 
+0

당신이 EF를 사용하고 계십니까을 필요로하는 모든 null이 아닌 값을 얻을 수 있도록 당신이 당신의 Required 필드를 제공하는 데 사용할 수있는 익명 객체를 나타냅니다 ? 그렇다면 Autogeneratetables를 false로 변경하고자 할 수 있습니다. – Nilesh

+0

나는 또한 코드를 먼저 지적하고 싶다. autocreate를 false로 설정하지만 여전히 발생합니다. –

+0

별도로 사용자를 생성 한 다음'CreateAccount'를 사용하여 memebership 테이블에 계정을 만들 수 있습니까? 그게 작동하는지 확인하십시오. – Nilesh

답변

0

당신이 그 열 이름을 변경 되었기 때문에 그것은 아마이 WebSecurity 사용할지 열 자체를 알고있다. 아마 당신이 인터넷 템플리트에서 일한다면 InitializeSimplemembership.cs에있을 것입니다.

WebSecurity.InitializeDatabaseConnection([here database username], 
[here database password], [here YOUR talbe name containing user name column], 
[here user name column] , autoCreateTables: true); 

UserName 열이있는 테이블을 하나만 작성하면 나머지는 새 테이블의 WebSecurity에 의해 작성됩니다.

+0

입니다. 나는 그 지위를 편집했다. Resumen, UserPwd 열은 Table User에서 생성됩니다. –

0

이 시도 :

WebSecurity.CreateUserAndAccount("Admin", "Admin", new {UserPwd = ""}, false) 

제 3 매개 변수는 SQL 그것이

관련 문제