표준 WebSecurity
기능을 사용하여 역할 관리 - 관리 페이지를 만듭니다.SQL 오류 : 해당 기본 키 값이 존재하지 않기 때문에 외래 키 값을 삽입 할 수 없습니다.
나는 코드의 다음 줄에이 오류
Foreign key value cannot be inserted because a corresponding primary key value does not exist. [Foreign key constraint name = fk_UserId]
받고 있어요 : 개별 테이블이 userId
칼럼과 연결되어야한다는
if(!Roles.IsUserInRole(userNames[0], roleNames[0])){
Roles.AddUsersToRoles(userNames, roleNames);
}
나의 이해는. 그리고 그들은. 나는 개발을 위해 WebMatrix 2와 Razor 프레임 워크를 사용하고 있습니다.
당신의 아이디어 나 해결책 SQL Masterminds? 고마워요!
아래 코드는 내가 어떻게 할 것인지 알려주는 코드입니다!
@{
var roleName = "";
string[] userNames = new string[1];
string[] roleNames = new string[1];
var db = Database.Open("ResearchA");
var selectQueryString = "SELECT UserId, username FROM [usernames]";
if(IsPost){
// Create new role
if(!Request["buttonCreateRole"].IsEmpty()){
roleName=Request["textRoleName"];
if(!Roles.RoleExists(roleName) && !roleName.IsEmpty()){
Roles.CreateRole(roleName);
}
}
// Delete role
if(!Request["buttonDeleteRole"].IsEmpty()){
roleName=Request["textRoleName"];
if(Roles.GetUsersInRole(roleName).Length == 0 && !roleName.IsEmpty()){
Roles.DeleteRole(roleName, true);
}
}
// Add user to role
if(!Request["buttonAddUserToRole"].IsEmpty()){
userNames[0] = Request["selectUserName"];
roleNames[0] = Request["selectRoleName"];
if(!Roles.IsUserInRole(userNames[0], roleNames[0])){
Roles.AddUsersToRoles(userNames, roleNames);
}
}
// Delete user from role
if(!Request["buttonDeleteUserFromRole"].IsEmpty()){
userNames[0] = Request["selectUserName"];
roleNames[0] = Request["selectRoleName"];
if(Roles.IsUserInRole(userNames[0], roleNames[0])){
Roles.RemoveUsersFromRoles(userNames, roleNames);
}
}
}
}
더 많은 정보를 보내면 Roles.AddUsersToRoles가 어떻게 작동합니까? AddUsersToRoles는 userName이 아니라 roleNames가 아닌 role []이 아닌 사용자를 취해야합니다. 어떻게 구현됩니까? –
'userNames'의 요소 중 하나가 (사용자 테이블의) 데이터베이스에 존재하지 않으므로 사용자와 역할을 연결하는 접합 테이블의 외부 키가 위반됩니다. –
또한 첫 번째 사용자/역할 만 확인하고 잠재적으로 여러 사용자를 여러 역할에 추가 할 수 있습니다. 그게 의도적 인거야? –