использование SPSecurity.RunWithElevatedPrivileges получает ошибку - PullRequest
0 голосов
/ 02 марта 2011

ошибка, которую я получаю, является недействительной проверкой безопасности для этой страницы.Нажмите Назад в вашем веб-браузере, обновите страницу и попробуйте снова.я использую мох 2007

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;
        }
    }

Ответы [ 3 ]

2 голосов
/ 02 марта 2011

Попробуйте поставить mySite.AllowUnsafeUpdates = false; после mySite.AllWebs[WebName].Lists[_sLibName].Update();

1 голос
/ 01 апреля 2014

Я работаю с этим решением всегда

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;
}
1 голос
/ 02 марта 2011

я нашел решение, которое мне нужно сделать, это удалить

mySite.AllowUnsafeUpdates = true; а также mySite.AllowUnsafeUpdates = false; и это работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...