"삭제"링크를 클릭하면 내 "JobPost.mdf"의 "UserDetail"테이블에서 모든 사용자 정보를 삭제할 수 있습니다. 해당 "aspnet_Users"& "aspnet_Membership"해당 "UserInRole"여전히 해당 UserName 포함되어 있습니다. 코드를 지정 했더라도 : Membership.DeleteUser (UserName, true);Membership.DeleteUser (UserName, true) 사용자를 역할에서 제외하지 않습니다.
사실 나는 bool deleteallrelated 데이터에 대해 생각했지만 실제로는 userInRole을 삭제하지 않습니다. 다음에 사용자가 같은 이름으로 등록하면 자동으로 "admin"역할을 자동으로 얻게됩니다.
이 "deleteUser"페이지 나는 보호 된 "admin"폴더 안에 보관합니다.
어떻게 해결할 수 있습니까? 왜 Membership.DeleteUser (UserName, true)는 UserInRole을 삭제하지 않습니까? 보호 관리자 폴더 안에
protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
string UserName = e.CommandArgument.ToString();
Membership.DeleteUser(UserName, true);
JobPostDataContext db = new JobPostDataContext();
var query = from u in db.UserDetails
where u.UserName == UserName
select u;
foreach (var item in query)
{
db.UserDetails.DeleteOnSubmit(item);
}
db.SubmitChanges();
FormsAuthentication.SignOut();
}
}
내 Web.config의는 :
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<authorization>
<allow roles="Administrators" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
이것은 사용자 정의 테이블과'SqlMembershipProvider' 테이블이 혼합되어있는 것처럼 보입니다. 정확히 당신이 참조하고있는'UserInRole'은 무엇입니까? (여전히'UserName'을 포함하고 있습니다.) –