2011-03-02 51 views
0

我得到的錯誤是 此頁的安全驗證無效。在Web瀏覽器中單擊Back,刷新頁面並再次嘗試操作。 我使用苔2007使用SPSecurity.RunWithElevatedPrivileges獲取錯誤

protected void btnSubmit_Click(Object sender, EventArgs e) 
    { 
     try 
     { 
      SPSecurity.RunWithElevatedPrivileges(delegate() 
{ 
    SPUtility.ValidateFormDigest(); 
    using (SPSite mySite = new SPSite(_sLibUrl)) 
    { 

     TextBox txtFirstName = (TextBox)usercontrol.FindControl("txtFirstName"); 
     TextBox txtLastName = (TextBox)usercontrol.FindControl("txtLastName"); 
     TextBox txtPhone = (TextBox)usercontrol.FindControl("txtPhone"); 
     TextBox txtEmail = (TextBox)usercontrol.FindControl("txtEmail"); 
     TextBox txtSubject = (TextBox)usercontrol.FindControl("txtSubject"); 
     TextBox txtContant = (TextBox)usercontrol.FindControl("txtContant"); 

     mySite.AllowUnsafeUpdates = true; 
     SPListItemCollection listItems = mySite.AllWebs[WebName].Lists[_sLibName].Items; 
     SPListItem item = listItems.Add(); 
     item["FirstName"] = txtFirstName.Text; 
     item["LastName"] = txtLastName.Text; 
     item["Phone"] = txtPhone.Text; 
     item["Email"] = txtEmail.Text; 
     item["Subject"] = txtSubject.Text; 
     item["Contant"] = txtContant.Text; 

     item.Update(); 
     mySite.AllowUnsafeUpdates = false; 
     mySite.AllWebs[WebName].Lists[_sLibName].Update(); 
     txtFirstName.Text = string.Empty; 
     txtLastName.Text = string.Empty; 
     txtPhone.Text = string.Empty; 
     txtEmail.Text = string.Empty; 
     txtSubject.Text = string.Empty; 
     txtContant.Text = string.Empty; 

    } 
    Label lblMessage = (Label)usercontrol.FindControl("lblMessage"); 
    // lblMessage.Text = "טופס נשלח בהצלחה"; 
}); 
     } 

     catch (Exception ex) 
     { 
      Label lbl = (Label)usercontrol.FindControl("lblMessage"); 
      lbl.Text = ex.Message; 
     } 
    } 

回答

2

嘗試把mySite.AllowUnsafeUpdates = false;mySite.AllWebs[WebName].Lists[_sLibName].Update();

1

我找到了解決辦法是什麼,我需要做的是去除

mySite.AllowUnsafeUpdates = TRUE; 和 mySite.AllowUnsafeUpdates = false; 和它的作品

1

我用這個解決方案始終

using (var site = new SPSite(SPContext.Current.Site.ID)) 
using (var web = site.OpenWeb()) 
{ 
    web.AllowUnsafeUpdates = true; 
    //add, update and etc. programatically crud operations with lists 
    web.AllowUnsafeUpdates = false; 
} 
工作