SharePoint安全...SPSecurity委托,一个值得我们去思考的问题
2010-01-08 10:56
615 查看
今天无意中发现SPSecurity.CodeToRunElevated 这个委托,确实很棒 ,一个无意识的发现,可以引发很多貌似不很重要的东西,却在项目中,引发很大的思考。。。希望大家看啦我的Demo能过明白,来引发出值得大家思考的东西
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint;
namespace SPGridViewDemo
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SPSecurity.CodeToRunElevated showLists = new SPSecurity.CodeToRunElevated(ShowLists);
SPSecurity.RunWithElevatedPrivileges(showLists);
}
protected void ShowLists()
{
DataTable entries = new DataTable("Entries");
entries.Columns.Add("ID", typeof(System.Int32));
entries.Columns.Add("SiteNav", typeof(string));
entries.Columns.Add("SiteName", typeof(string));
entries.Columns.Add("SiteURl", typeof(string));
entries.Columns.Add("ListName", typeof(string));
entries.Columns.Add("ListID", typeof(string));
entries.PrimaryKey = new DataColumn[] { entries.Columns["ID"] };
entries.Columns["ID"].AutoIncrement = true;
entries.Columns["ID"].AutoIncrementSeed = 1;
entries.Columns["ID"].AutoIncrementStep = 1;
entries.Columns["ID"].ReadOnly = true;
using (SPSite site = new SPSite(@"http://lh-vmpc:6060/"))
{
foreach (SPWeb web in site.AllWebs)
{
foreach (SPList list in web.GetListsOfType(SPBaseType.GenericList))
{
if(list.DoesUserHavePermissions(site.RootWeb.CurrentUser,SPBasePermissions.AddListItems) && list.BaseTemplate == SPListTemplateType.Tasks)
{
DataRow row = entries.NewRow();
row["SiteName"] = web.Title;
row["SiteNav"] = web.Url;
row["SiteUrl"] = web.Url;
row["ListName"] = list.Title;
row["ListID"] = list.ID;
entries.Rows.Add(row);
}
}
}
}
this.GridView1.DataSource = entries;
GridView1.DataBind();
}
}
}
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint;
namespace SPGridViewDemo
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SPSecurity.CodeToRunElevated showLists = new SPSecurity.CodeToRunElevated(ShowLists);
SPSecurity.RunWithElevatedPrivileges(showLists);
}
protected void ShowLists()
{
DataTable entries = new DataTable("Entries");
entries.Columns.Add("ID", typeof(System.Int32));
entries.Columns.Add("SiteNav", typeof(string));
entries.Columns.Add("SiteName", typeof(string));
entries.Columns.Add("SiteURl", typeof(string));
entries.Columns.Add("ListName", typeof(string));
entries.Columns.Add("ListID", typeof(string));
entries.PrimaryKey = new DataColumn[] { entries.Columns["ID"] };
entries.Columns["ID"].AutoIncrement = true;
entries.Columns["ID"].AutoIncrementSeed = 1;
entries.Columns["ID"].AutoIncrementStep = 1;
entries.Columns["ID"].ReadOnly = true;
using (SPSite site = new SPSite(@"http://lh-vmpc:6060/"))
{
foreach (SPWeb web in site.AllWebs)
{
foreach (SPList list in web.GetListsOfType(SPBaseType.GenericList))
{
if(list.DoesUserHavePermissions(site.RootWeb.CurrentUser,SPBasePermissions.AddListItems) && list.BaseTemplate == SPListTemplateType.Tasks)
{
DataRow row = entries.NewRow();
row["SiteName"] = web.Title;
row["SiteNav"] = web.Url;
row["SiteUrl"] = web.Url;
row["ListName"] = list.Title;
row["ListID"] = list.ID;
entries.Rows.Add(row);
}
}
}
}
this.GridView1.DataSource = entries;
GridView1.DataBind();
}
}
}
相关文章推荐
- SharePoint安全...SPSecurity委托,一个值得我们去思考的问题
- Test Coverage- 一个值得我们思考的问题
- .NET还是JAVA,这是一个值得思考的问题
- 【原创】关于SPSecurity.RunWithElevatedPrivileges的一个问题[A problem about SPSecurity.RunWithElevatedPrivileges]
- .NET还是JAVA,这是一个值得思考的问题
- 一个很值得思考的问题,求解决!
- 递归一个值得思考的问题
- SharePoint 2013部署自定义HttpModule访问SPContext.Current的一个问题
- sharepoint 一个有用的方法SPSecurity.RunWithElevatedPrivileges(delegate(){})
- 关于Java继承一个值得思考的问题。
- 01 回答一个应届生的安全设计问题
- 关于异步、线程、委托的一个问题
- 专业的程序员需要具备的思考能力:写一个程序需要注意多少细节问题
- 一个值得思考的现象
- 一个问题引发的思考
- 【转】怎么样从一个疯狂下载者成为一个学习者!!!值得反省下的问题·~~
- SharePoint v3:忘掉模拟用户Impersonate,SPSecurity.RunWithElevatedPrivileges来了
- 一个关于概率的问题的思考
- 一个与直觉相悖的概率问题引发的严肃思考(转自果壳)
- IE中一个值得关注的JS问题