以编程方式将项目添加到列表

时间:2009-07-03 11:47:43

标签: sharepoint list login

我在Sharepoint网站中使用表单基本身份验证。在我的登录页面上,有未经身份验证的用户填写的自定义字段。这些字段我想添加到我的列表中。我使用以下代码在列表中插入记录。

protected void AddVendor(object sender, EventArgs e)
{
    string strList = "http://comp01:5353/Lists/Vendors/";

    using (SPSite site = new SPSite(strList))
    {
        site.AllowUnsafeUpdates = true;
        using (SPWeb web = site.OpenWeb())
        {
            web.AllowUnsafeUpdates = true;
            SPUser user = web.AllUsers["demouser"];    
            SPList list = web.Lists["Vendors"];
            SPListItem Item = list.Items.Add();
            Item["First Name"] = txtVendorName.Text;
            Item["Last Name"] = txtVLastName.Text;
            Item["business"] = txtDescription.Text;
            Item["Description"] = txtDescription.Text;
            Item["Mobile No"] = txtMobileNumber.Text;
            Item["Approved"] = "No";
            Item["Created By"] = "demoadmin";
            Item["Modified By"] = "demoadmin";   
            Item.Update();
        }
    }
}

但是给我一个错误,说线程正在中止。我不知道究竟缺少了什么。但是因为我正在执行添加操作而用户未经过身份验证...?

2 个答案:

答案 0 :(得分:0)

你在哪里写过这段代码,是否在某些事件中?登录控制提供两个可帮助您解决此问题的事件

OnLoginError="OnLoginError" OnLoggedIn="OnLoggedIn"

我做了类似的功能,我希望将用户名loggin捕获到站点并将其记录到数据库表。并且就ThreadAbort异常而言,当您在执行代码时使用Response.Redirect时会发生这种情况。在你的情况下,我怀疑它被抛出,因为你试图做上面的代码,但FBA系统试图将用户重定向到default.aspx。试试上面说的登录控制事件它应该对你有帮助。

答案 1 :(得分:0)

我不知道它是否会对您有所帮助,但代码(fe) 项目[“修改者”] 将无效,因为这是内部的名称 Modified_x0020_By 。这适用于所有带有“空格”的字段。

这可能是你的问题之一......