Use SPSecurity.RunWithElevatedPrivileges to create item in list B. See the attached code snippet as an example.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
private int CreateListB(SPListItem listA) { int intRet = 0; SPSecurity.RunWithElevatedPrivileges(delegate { using (SPSite site = new SPSite(listA.Web.Site.ID)) { SPWeb web = site.OpenWeb(listA.Web.ID); SPListItem listB = web.Lists["List B"].Items.Add(); listB["List B Field 1"] = listA["List A Field 1"]; listB["List B Field 2"] = listA["List A Field 2"]; listB["List B Field 3"] = listA["List A Field 3"]; listB["List B Field 4"] = listA["List A Field 4"]; listB.Update(); intRet = listB.ID; } } ); return (intRet); }