<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_流星小筑</title><subtitle type="text">火流星一闪即逝，只留给人们许下心愿的瞬间</subtitle><id>http://feed.cnblogs.com/blog/u/8665/rss</id><updated>2011-01-22T04:59:49Z</updated><author><name>风渐寒pro</name><uri>http://www.cnblogs.com/fireball/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fireball/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/8665/rss"/><entry><id>http://www.cnblogs.com/fireball/archive/2011/01/20/1940580.html</id><title type="text">Sharepoint门户可以干很多事情的</title><summary type="text">09年协助MS epg打单时开发的POC，其实在07年我就干过这些活了。不过感触最深的还是打单的对比，ibm是用所有客户要求的需求功能点讲一个story，我们这边是这些功能点俺家都有。虽然我觉得既然自己参与了，就要帮助赢下IBM，可我只是过来帮忙的，没法去控制参与的所有人按讲一个story来完成目标。一、门户集成Domino邮件及代办。2、使用sharepint实现Domino全文搜索效果3、集成的Domino待办通过OCS进行即时消息通知。</summary><published>2011-01-20T12:55:00Z</published><updated>2011-01-20T12:55:00Z</updated><author><name>风渐寒pro</name><uri>http://www.cnblogs.com/fireball/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fireball/archive/2011/01/20/1940580.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fireball/archive/2011/01/20/1940580.html"/><content type="html">&lt;p&gt;09年协助MS epg打单时开发的POC，其实在07年我就干过这些活了。不过感触最深的还是打单的对比，ibm是用所有客户要求的需求功能点讲一个story，我们这边是这些功能点俺家都有。虽然我觉得既然自己参与了，就要帮助赢下IBM，可我只是过来帮忙的，没法去控制参与的所有人按讲一个story来完成目标。&lt;/p&gt;&#xD;
&lt;p&gt;一、门户集成Domino邮件及代办。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img style="width: 658px; height: 705px" border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/fireball/index.png" width="658" height="705" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;2、使用sharepint实现Domino全文搜索效果&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img style="width: 651px; height: 698px" border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/fireball/Domino搜索.png" width="651" height="698" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;3、集成的Domino待办通过OCS进行即时消息通知。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img style="width: 648px; height: 695px" border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/fireball/OCS2.png" width="648" height="695" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fireball/aggbug/1940580.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fireball/archive/2011/01/20/1940580.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fireball/archive/2011/01/15/1936088.html</id><title type="text">利用 Lotus Notes API 提高自动化测试效率(转)</title><summary type="text">自动化测试可以很大程度的减少人工参与的工作量，提高测试效率。在自动化测试中，测试人员经常需要与 Notes/Domino 数据库打交道，比如说在自动化测试之前，需要从测试用例数据库中挑选出哪些测试用例要被执行；在测试完成之后，需要将测试结果记录到测试用例数据库，或者将测试报告存放到 Notes 某一指定的数据库中，通常这些工作是由手工完成。如果将这些工作自动化，将会很大程度上节约测试时间和测试成本。幸运的是，Lotus Notes/Domino 为程序员提供了一系列 C++/Java API，利用这些 API 可以完成对 Notes 数据库的访问、创建、管理等几乎所有的操作。本文将介绍利用 L</summary><published>2011-01-15T01:08:00Z</published><updated>2011-01-15T01:08:00Z</updated><author><name>风渐寒pro</name><uri>http://www.cnblogs.com/fireball/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fireball/archive/2011/01/15/1936088.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fireball/archive/2011/01/15/1936088.html"/><content type="html">&lt;p&gt;自动化测试可以很大程度的减少人工参与的工作量，提高测试效率。在自动化测试中，测试人员经常需要与 Notes/Domino 数据库打交道，比如说在自动化测试之前，需要从测试用例数据库中挑选出哪些测试用例要被执行；在测试完成之后，需要将测试结果记录到测试用例数据库，或者将测试报告存放到 Notes 某一指定的数据库中，通常这些工作是由手工完成。如果将这些工作自动化，将会很大程度上节约测试时间和测试成本。幸运的是，Lotus Notes/Domino 为程序员提供了一系列 C++/Java API，利用这些 API 可以完成对 Notes 数据库的访问、创建、管理等几乎所有的操作。本文将介绍利用 Lotus Notes API 进行编程，自动操作 Notes/Domino 数据库，使整个测试过程自动完成。&lt;/p&gt;&#xD;
&lt;p&gt;图 1 说明了自动化测试的整体流程：首先从 TCDB 中提取符合条件的测试用例，然后在指定测试机上安装被测软件、执行挑选出来的测试用例、生成测试报告，然后将测试结果回填到 Testcase DB 中，并且将测试报告发送到指定数据库中。&lt;/p&gt;&lt;br /&gt;&lt;a name="fig1"&gt;&lt;strong&gt;图 1.&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="图 1." src="http://www.ibm.com/developerworks/cn/lotus/notes-api-test/image001.png" width="572" height="332" /&gt; &lt;br /&gt;&#xD;
&lt;div &gt;&#xD;
&lt;hr /&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p &gt;&lt;a  href="http://www.ibm.com/developerworks/cn/lotus/notes-api-test/#ibm-pcon"&gt;回页首&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a name="major2"&gt;&lt;span &gt;Notes/Domino C++ API 在自动化测试中的应用&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;C++ API 是在对 Notes C API 进行封装的基础上建立的。由于 C++ 语言的面向对象的特性，所以 C++ API 使用起来更简单一些。&lt;/p&gt;&#xD;
&lt;p&gt;在使用 Notes C++ API 进行编程之前，根据你当前使用的 Notes 版本，需要下载匹配版本的 C++ API Toolkit, 这个工具箱可以从 IBM 网站上得到。该工具箱中包含有 API 帮助文档、库文件、头文件、示例程序以及示例程序中用到的数据库文件等。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a name="minor2.1"&gt;&lt;span &gt;配置 Visual C++&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在利用 Notes C++ API 进行编程之前，需要先配置 Visual C++，环境配置正确才能保证代码能够正常编译链接。&lt;/p&gt;&#xD;
&lt;ul&gt;&lt;li&gt;将 Notes 的安装路径添加到环境变量 path 中。&lt;/li&gt;&lt;li&gt;在 VC 中新建一个 C++ 工程 NotesDemos, 然后新建一个 C++ 文件。&lt;/li&gt;&lt;li&gt;选择菜单 Build &amp;gt;Set Active Configuration &amp;gt; Win32 Release &amp;gt; OK&lt;/li&gt;&lt;li&gt;将 C++ API（notescpp）路径添加到 lib 和 include 中&lt;/li&gt;&lt;li&gt;选择 Project&amp;gt;Add to Project&amp;gt;Files, 将 notesCpp.lib 添加到工程， 如图 2 所示：&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a name="fig2"&gt;&lt;strong&gt;图 2.&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="图 2." src="http://www.ibm.com/developerworks/cn/lotus/notes-api-test/image002.gif" width="420" height="277" /&gt; &lt;br /&gt;&#xD;
&lt;p&gt;&lt;a name="minor2.2"&gt;&lt;span &gt;利用 Notes/Domino C++ API 编程&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;接下来介绍如何利用 Notes C++ API 访问 Notes, 并对 Notes 数据库中的文档进行操作。&lt;/p&gt;&#xD;
&lt;p&gt;代码清单 1 是个简单的例子程序，目的是得到某个数据库名字。&lt;/p&gt;&lt;br /&gt;&lt;a name="listing1"&gt;&lt;strong&gt;清单 1.&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&#xD;
&lt;table border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&lt;pre &gt;#include &amp;lt;lncppapi.h&amp;gt; &#xD;
 #include &amp;lt;iostream.h&amp;gt; &#xD;
 void main(int argc, char *argv[]) &#xD;
 { &#xD;
 char errorBuf[256]; &#xD;
 LNNotesSession session; &#xD;
 LNSetThrowAllErrors(TRUE); &#xD;
 LNDatabase db; &#xD;
&#xD;
 session.Init(); &#xD;
&#xD;
 try{ &#xD;
 session.GetDatabase(nsfFileName, &amp;amp;db, server); &#xD;
 db.Open(); &#xD;
 cout &amp;lt;&amp;lt;"DB title: "&amp;lt;&amp;lt; db.GetTitle() &amp;lt;&amp;lt;endl; &#xD;
 }catch (LNSTATUS error){ &#xD;
 LNGetErrorMessage(error, errorBuf); &#xD;
 cout&amp;lt;&amp;lt;"Error: " &amp;lt;&amp;lt;errorBuf &amp;lt;&amp;lt;endl; &#xD;
 } &#xD;
 db.Close(); &#xD;
&#xD;
 session.Term(); &#xD;
&#xD;
 return; &#xD;
 } &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&#xD;
&lt;p&gt;其中：&lt;/p&gt;&#xD;
&lt;p&gt;lncppapi.h：在利用 Notes API 编程时，一定要包含该头文件。这个文件位于 NotesCPP\Include 目录下，通过该头文件链接到其他的定义所有 API 对象和数据类型的类库。比如 LNNotesSession 类就定义在其中。&lt;/p&gt;&#xD;
&lt;p&gt;Session.Init: 初始化 C++ API，建立与 Notes 的连接，读取 notes.ini 文件，找到当前 Notes 用户 ID。当与 Notes 建立连接之后，就可以操作 Notes 数据库了。&lt;/p&gt;&#xD;
&lt;p&gt;session.term: 在对 notes db 操作完成之后，调用该函数切断与 Notes 的连接、释放资源。&lt;/p&gt;&#xD;
&lt;p&gt;GetDatabase( const LNString &amp;amp;path, LNDatabase *db, const LNString &amp;amp;server = "" ) ：其中参数 NSF 文件名和服务器的 hostname 可以通过查看数据库的属性得到，如图 3 所示：&lt;/p&gt;&lt;br /&gt;&lt;a name="fig3"&gt;&lt;strong&gt;图 3.&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="图 3." src="http://www.ibm.com/developerworks/cn/lotus/notes-api-test/image003.png" width="572" height="270" /&gt; &lt;br /&gt;&#xD;
&lt;p&gt;数据库中的每个文档属性（通过右键单击可得到）都是由不同的域组成，通过这些域可以唯一的确定一个文档，我们通过改变域的值对其进行操作。文档属性如图 4 所示：&lt;/p&gt;&lt;br /&gt;&lt;a name="fig4"&gt;&lt;strong&gt;图 4.&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="图 4." src="http://www.ibm.com/developerworks/cn/lotus/notes-api-test/image004.png" width="369" height="193" /&gt; &lt;br /&gt;&#xD;
&lt;p&gt;自动化测试完成之后，测试报告可以自动存放到指定数据库的指定目录下，清单 2 演示了如何对数据库中的文档进行操作。该代码片断目的是先在指定的数据库中新建文档，然后将测试报告导入到该文档中，这样使测试报告更加直观。当然，也可以通过调用&lt;/p&gt;&#xD;
&lt;p&gt;LNRichText::CreateAttachment（）方法把测试报告以附件的形式贴在该文档中。&lt;/p&gt;&lt;br /&gt;&lt;a name="listing2"&gt;&lt;strong&gt;清单 2.&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&#xD;
&lt;table border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&lt;pre &gt;Session.Init(); &#xD;
 Session.GetDatabase(nsfFileName, &amp;amp;Db, server);   // 连接指定数据库 . &#xD;
&#xD;
 LNText      Author, Categories, Subject, DocumentType; &#xD;
 LNDocument  NewDoc, NewRes; &#xD;
 Db.Open(); &#xD;
 // 首先查找主文档，然后使测试报告对该文档进行回复&#xD;
 SearchFormula = "Subject = \""; &#xD;
 SearchFormula += mainDocSubject; &#xD;
 SearchFormula += "\"";     &#xD;
&#xD;
 // 如果找到没有主文档，则新建一个类型为&amp;#8220;MainTopic&amp;#8221;的文档。 Search（）方法，找到文档，返回为 0. &#xD;
 if (Db.Search (SearchFormula, &amp;amp;DocResponseTo)) &#xD;
 { &#xD;
     Db.CreateDocument(&amp;amp;NewDoc, "MainTopic"); &#xD;
     Subject.SetValue(mainDocSubject); &#xD;
     Author.SetValue("CN=Jing Xing/OU=China/O=IBM"); &#xD;
     Categories.SetValue(Category); &#xD;
     DocumentType.SetValue("Reference"); &#xD;
    &#xD;
     // 为文档不同的域设值&#xD;
     NewDoc.CreateItem("From", Author, LNITEMFLAGS_SUMMARY);&#xD;
     NewDoc.CreateItem("Subject", Subject, LNITEMFLAGS_SUMMARY);&#xD;
     NewDoc.CreateItem("Categories", Categories, LNITEMFLAGS_SUMMARY); &#xD;
     NewDoc.CreateItem("DocType", DocumentType, LNITEMFLAGS_SUMMARY); &#xD;
     NewDoc.ComputeWithForm(true); &#xD;
     NewDoc.Save();// 保存文档&#xD;
 } &#xD;
&#xD;
 // 创建文档 , 类型为 Response &#xD;
 Db.CreateDocument(&amp;amp;NewRes, "Response"); &#xD;
 Subject.SetValue(subSubject); &#xD;
 Author.SetValue("CN=Jing Xing/OU=China/O=IBM"); &#xD;
 Categories.SetValue(Category); &#xD;
&#xD;
 NewRes.CreateItem("From", Author, LNITEMFLAGS_SUMMARY); &#xD;
 NewRes.CreateItem("Subject", Subject, LNITEMFLAGS_SUMMARY); &#xD;
 // 如果分类不存在，则新建 category &#xD;
 if(Category!="") &#xD;
 { &#xD;
     NewRes.CreateItem("Categories", Categories, LNITEMFLAGS_SUMMARY); &#xD;
 } &#xD;
 NewRes.CreateItem("ShowAuthors", ShowAuthors, LNITEMFLAGS_SUMMARY); &#xD;
 NewRes.MakeResponse(NewDoc); // 对 NewDoc 进行回复&#xD;
&#xD;
 RT.Append("Here is the report: \n\n"); &#xD;
 RT.GetEndCursor(&amp;amp;BeginCursor); &#xD;
 RT.Import(ReportLocation, &amp;amp;BeginCursor);// 将 report 文件导入新建文档中。&#xD;
 NewRes.CreateItem("Body", RT); &#xD;
&#xD;
 NewRes.Save(); &#xD;
&#xD;
 Db.close()；&#xD;
 Session.term(); &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&#xD;
&lt;p&gt;其中每个函数的具体用法可以参考 NotesAPP 中提供的帮助文档。&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;hr /&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p &gt;&lt;a  href="http://www.ibm.com/developerworks/cn/lotus/notes-api-test/#ibm-pcon"&gt;回页首&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a name="major3"&gt;&lt;span &gt;Notes/Domino Java API&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;同 C++ API 一样，Notes Java API 也可以完成对 Notes/Domino 数据库的大部分操作。不同的是，Java API 使用起来相对更简单一些，不用配置很多的东西，只需要将 ${Notes}/jvm/lib/ext/notes.jar 包含在 classpath 中即可。关于 Java API 的帮助文档可以参考：&lt;a href="http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp"&gt;&lt;font color="#4c6e94"&gt;IBM Lotus Notes and Domino 信息中心&lt;/font&gt;&lt;/a&gt;。 &lt;/p&gt;&#xD;
&lt;p&gt;下面以一段简单的例子说明如何通过 Java API 连接数据库 , 清单 3 是访问某个数据库 , 然后输出该数据库的名字。&lt;/p&gt;&lt;br /&gt;&lt;a name="listing3"&gt;&lt;strong&gt;清单 3.&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&#xD;
&lt;table border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&lt;pre &gt;Public static void main(String args[]){ &#xD;
    try{ &#xD;
        NotesThread.sinitThread(); // 启动线程&#xD;
        Session session = NotesFactory&#xD;
            .createSession((String)null, (String)null, password);&#xD;
        Database database = session.getDatabase(host, nsf, false);// 连接数据库&#xD;
        System.out.println("DataBase tilte is: " + database .getTitle()); &#xD;
    } finally { &#xD;
        NotesThread.stermThread(); // 结束该线程&#xD;
    } &#xD;
} &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&#xD;
&lt;p&gt;其中：&lt;/p&gt;&#xD;
&lt;ul&gt;&lt;li&gt;NotesThread.sinitThread()：对 Notes/Domino 作本地调用时初始化进程。&lt;/li&gt;&lt;li&gt;NotesThread.stremThread(): 结束该调用。&lt;/li&gt;&lt;li&gt;Session.getDatabase(String server, String db, boolean createonfail)：该方法与 C++ 的类似，需要提供要访问的服务器 hostname 和数据库 nsf 文件名。同样，可以通过查看数据库属性得到。&lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p&gt;正如前文提到的，自动化测试时需要从测试用例数据库中选出符合条件的测试用例后自动执行。以下代码清单 4 是从数据库中选出 cycle-001 中所有的执行方法为 Automated 的测试用例，并将其组织成一个测试用例集保存于 .suite 文件中。&lt;/p&gt;&lt;br /&gt;&lt;a name="listing4"&gt;&lt;strong&gt;清单 4.&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&#xD;
&lt;table border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&lt;pre &gt;String cycle = "CYC-001"; &#xD;
 try { &#xD;
     NotesThread.sinitThread(); &#xD;
     File file = new File("C:/cyc-001.suite");// 该文件用于保存符合条件的测试用例的 ID &#xD;
     if (file.getParentFile() != null) &#xD;
         file.getParentFile().mkdirs(); &#xD;
     suiteFileWriter = new BufferedWriter(new FileWriter(suiteFile)); &#xD;
    &#xD;
     Session session = NotesFactory&#xD;
         .createSession((String)null, (String)null, notesPassword);&#xD;
     Database database = session.getDatabase(host, nsf, false); &#xD;
     DocumentCollection dc = database&#xD;
         .search("ExecCycleID=" + "\"" + cycle + "\"");// 搜索所有属于"CYC-001"的测试用例。&#xD;
     Document doc = dc.getFirstDocument(); &#xD;
     while (doc != null) { &#xD;
         String method = doc.getItemValueString("Method"); // 得到域&amp;#8221;Method&amp;#8221;的值&#xD;
         String tcID = doc.getItemValueString("ExecTCID"); &#xD;
         if ("Automated".equals(method)) { &#xD;
             suiteFileWriter.write("tcID.replace("-", "_") + "\r\n"); &#xD;
             } &#xD;
         } &#xD;
     } &#xD;
 } finally { &#xD;
     NotesThread.stermThread(); &#xD;
     if (suiteFileWriter != null) &#xD;
         try { &#xD;
             suiteFileWriter.close(); &#xD;
         } catch (Exception e) { &#xD;
         } &#xD;
     } &#xD;
 } &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&#xD;
&lt;div &gt;&#xD;
&lt;hr /&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p &gt;&lt;a  href="http://www.ibm.com/developerworks/cn/lotus/notes-api-test/#ibm-pcon"&gt;回页首&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a name="major4"&gt;&lt;span &gt;总结&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;本文介绍了在自动化测试中使用 Notes/Domino 提供的 API 来访问 Notes/Domino 数据库，并进行数据库中文档操作，使在自动化测试中的很多工作可以自动完成。不管使用 Notes C++ API 还是 Java API，都能很好的完成自动化测试时对 Notes/Domino 数据库的操作需求，这大大地增加了测试的自动化程度，节约了测试成本。&lt;/p&gt;&lt;!-- CMA ID: 592250 --&gt;&lt;!-- Site ID: 10 --&gt;&lt;!-- XSLT stylesheet used to transform this file: dw-document-html-6.0.xsl --&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/fireball/aggbug/1936088.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fireball/archive/2011/01/15/1936088.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fireball/archive/2010/12/12/1904018.html</id><title type="text">sharepoint2010,I am coming!</title><summary type="text">之前帮某微软金牌合作伙伴做poc,短暂的接触了一下2010.现在,终于正式在自己搭好的虚机里,开始了2010之旅. 相比kaneboy, 杜伟,我来得太晚了,but better later than never.首先是可视化Webpart部件无法搭建沙盒解决方案.因为可视化Web部件包含.ascx控件,而沙盒解决方案不能部署文件到Web前端上.其次是报"沙盒无法启动新的解决方案服务的SPUserCodeV4 "的错误.在管理中心启动沙盒解决方案服务即可.</summary><published>2010-12-12T15:21:00Z</published><updated>2010-12-12T15:21:00Z</updated><author><name>风渐寒pro</name><uri>http://www.cnblogs.com/fireball/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fireball/archive/2010/12/12/1904018.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fireball/archive/2010/12/12/1904018.html"/><content type="html">&lt;p&gt;之前帮某微软金牌合作伙伴做poc,短暂的接触了一下2010.现在,终于正式在自己搭好的虚机里,开始了2010之旅.&lt;/p&gt;&#xD;
&lt;p&gt;相比kaneboy, 杜伟,我来得太晚了,but better later than never.&lt;/p&gt;&#xD;
&lt;p&gt;首先是可视化Webpart部件无法搭建沙盒解决方案.因为可视化Web部件包含.ascx控件,而沙盒解决方案不能部署文件到Web前端上.&lt;/p&gt;&#xD;
&lt;p&gt;其次是报"&lt;a id="ctl02_TitleUrl"  href="http://www.cnblogs.com/ytllove/archive/2010/11/18/1880932.html"&gt;沙盒无法启动新的解决方案服务的SPUserCodeV4&lt;/a&gt; "的错误.在管理中心启动沙盒解决方案服务即可.&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fireball/aggbug/1904018.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fireball/archive/2010/12/12/1904018.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fireball/archive/2010/10/01/1839881.html</id><title type="text">sharepoint安全性验证无效的一个问题</title><summary type="text">之前遇到过这个问题。今天十一碰到客户开了这个case,Eric做了解答。sharepoint有些内容真的很bt的说十一&amp;#8482; 说:幫我做case客戶寫了段代碼new Item 之後，做item.update然後又去改 permission然後報錯Microsoft.SharePoint.SPException: 對於這個網頁的安全性驗證無效。請按一下網頁瀏覽器的 [上一頁]，重新整理頁面，...</summary><published>2010-10-01T05:44:00Z</published><updated>2010-10-01T05:44:00Z</updated><author><name>风渐寒pro</name><uri>http://www.cnblogs.com/fireball/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fireball/archive/2010/10/01/1839881.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fireball/archive/2010/10/01/1839881.html"/><content type="html">&lt;p&gt;之前遇到过这个问题。今天十一碰到客户开了这个case,Eric做了解答。sharepoint有些内容真的很bt的说&lt;/p&gt;&#xD;
&lt;p&gt;十一&amp;#8482; 说:&lt;br /&gt;&amp;nbsp;幫我做case&lt;br /&gt;&amp;nbsp;客戶寫了段代碼&lt;br /&gt;&amp;nbsp;new Item 之後，做item.update&lt;br /&gt;&amp;nbsp;然後又去改 permission&lt;br /&gt;&amp;nbsp;然後報錯&lt;br /&gt;&amp;nbsp;Microsoft.SharePoint.SPException: 對於這個網頁的安全性驗證無效。請按一下網頁瀏覽器的 [上一頁]，重新整理頁面，然後再次嘗試作業。&lt;br /&gt;&amp;nbsp;在 ListItem.RoleAssignments.Add( )&amp;nbsp; 報錯&lt;br /&gt;Eric 说:&lt;br /&gt;&amp;nbsp;allowunsafeupdate=true&lt;br /&gt;十一&amp;#8482; 说:&lt;br /&gt;&amp;nbsp;設了&lt;br /&gt;Eric 说:&lt;br /&gt;&amp;nbsp;update之后还要设置一次&lt;br /&gt;十一&amp;#8482; 说:&lt;br /&gt;&amp;nbsp;是喔?&lt;br /&gt;&amp;nbsp;為什麼?&lt;br /&gt;Eric 说:&lt;br /&gt;&amp;nbsp;必须的！&lt;br /&gt;十一&amp;#8482; 说:&lt;br /&gt;&amp;nbsp;update 完會變 false ?&lt;br /&gt;Eric 说:&lt;br /&gt;&amp;nbsp;因为update()之后会被重置&lt;br /&gt;&amp;nbsp;对&lt;br /&gt;十一&amp;#8482; 说:&lt;br /&gt;&amp;nbsp;faint &lt;br /&gt;&amp;nbsp;有文件說嗎?&lt;br /&gt;Eric 说:&lt;br /&gt;&amp;nbsp;不知道。。。&lt;br /&gt;&amp;nbsp;还有个歪招。&lt;br /&gt;十一&amp;#8482; 说:&lt;br /&gt;&amp;nbsp;喔?&lt;br /&gt;Eric 说:&lt;br /&gt;&amp;nbsp;在执行之前，把current httpcontext存到另一个变量&lt;br /&gt;&amp;nbsp;完了把current设置成null&lt;br /&gt;&amp;nbsp;就不会有安全性检查了。 操作完了再设置回去，哈哈&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fireball/aggbug/1839881.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fireball/archive/2010/10/01/1839881.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fireball/archive/2010/09/28/1837334.html</id><title type="text">REST实现原理浅析(转载)</title><summary type="text">REST 首先只是一种架构样式，不是一种标准。这点和 Ajax 类似，两者都是利用现有的成熟技术。在 REST 的定义中，一个 Web 应用总是使用固定的 URI 向外部世界呈现（或者说暴露）一个资源。注：URI 是英文 Uniform Resource Identifier 的缩写，中文翻译&amp;#8220;通用资源标志符&amp;#8221;。&amp;#8220;通用资源标志符&amp;#8221;是指唯一标识一个资源...</summary><published>2010-09-28T02:28:00Z</published><updated>2010-09-28T02:28:00Z</updated><author><name>风渐寒pro</name><uri>http://www.cnblogs.com/fireball/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fireball/archive/2010/09/28/1837334.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fireball/archive/2010/09/28/1837334.html"/><content type="html">&lt;p&gt;REST 首先只是一种架构样式，不是一种标准。这点和 Ajax 类似，两者都是利用现有的成熟技术。在 REST 的定义中，一个 Web 应用总是使用固定的 URI 向外部世界呈现（或者说暴露）一个资源。&lt;/p&gt;&#xD;
&lt;p&gt;注：&lt;em&gt;&lt;font size="2"&gt;URI 是英文 Uniform Resource Identifier 的缩写，中文翻译&amp;#8220;通用资源标志符&amp;#8221;。&amp;#8220;通用资源标志符&amp;#8221;是指唯一标识一个资源（xhtml 文件、图片、css 样式表）的字符串。当然了，RFC 中定义的 URI 复杂得多，不过我们此处将 URI 想象成一个人的身份证号码就行了（你不能有两个同时有效的身份证号码，一个号码也不可能同时对应两个人）。而我们天天挂在嘴边的 URL 地址就是 URI 的一种表现形式（个人理解，有错请纠正）。 &lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
&lt;p&gt;知道什么是URI 后，我们来看一个实际例子：&lt;/p&gt;&#xD;
&lt;p&gt;http://www.example.com/photo/logo 指向 example.com 网站（可以视为一个 Web 应用）中类型为 photo，名字为 logo 的资源。我们用浏览器访问这个URI，看到的将可能是一个 xhtml 文档，其中用＜img src=&amp;#8221;&amp;#8230;&amp;#8230;&amp;#8221; /＞来显示实际的照片。&lt;/p&gt;&#xD;
&lt;p&gt;http://www.example.com/photo/logo 很容易让你想到 URL 重写。事实上，这个地址很可能会在服务器内部处理为 http://www.example.com/photo.php?name=logo 这样的地址。photo.php 是服务器端的一个动态脚本文件，根据 name 参数生成 xhtml 文档返回给浏览器。&lt;/p&gt;&#xD;
&lt;p&gt;现在假设我们要获取这张照片的 XML 文档。XML 文档中包含照片的文件名、文件大小、拍摄日期等等信息。也就是说我们要获取&amp;#8220;同一个资源的不同表现形式的数据&amp;#8221;。对于这个要求，我们可以很容易的用另一个 URL 地址达到：http://www.example.com/xml/logo。&lt;/p&gt;&#xD;
&lt;p&gt;但是，这就违背了&amp;#8220;URI 唯一标识一个资源&amp;#8221;的定义。如果我们要获取同一个资源的多种表现形式，那么就要使用更多的 URL，从而给一个资源指定了多个不同的 URI。&lt;/p&gt;&#xD;
&lt;p&gt;而在 REST 中，不管是获取照片的 xhtml 文档还是 XML 文档，或者照片文件本身，都是用同一个 URI，就是 http://www.example.com/photo/logo。&lt;/p&gt;&#xD;
&lt;p&gt;那这是怎么办到的呢？Ruby On Rails 中是通过分辨 HTTP Request Header 信息来分辨客户端是想要取得资源的哪一种表现形式的数据。&lt;/p&gt;&#xD;
&lt;p&gt;当我们用浏览器访问一个网址时，浏览器会构造一个 HTTP 请求。这个请求有一个头信息，其中包括了本次请求接受何种类型的数据。通常浏览器发送的 HTTP 请求头中，Accept 的值都是 */*，也就说接受服务器返回的任何类型的数据。&lt;/p&gt;&#xD;
&lt;p&gt;看到这里，聪明的家伙应该知道了。只要我们指定一个特定的 Accept 参数，那么服务器就可以通过判断该参数来决定返回什么类型的数据。所以在一个采用 REST 架构的应用中，要获取同一个资源的不同表现形式的数据，只需要使用不同的 HTTP 请求头信息就行了。&lt;/p&gt;&#xD;
&lt;p&gt;如果考虑为 Web 应用增加 Web Services，这种技术的价值就体现出来了。比如我写了一个 Delphi 程序，现在只需要构造一个包含 Accept: text/xml 的 HTTP 请求头，然后将请求发送到 http://www.example.com/photo/logo 就可以了。返回的结果就是一个 XML 文档，而不是 xhtml 文档。&lt;/p&gt;&#xD;
&lt;p&gt;因为我们的 HTTP 请求头信息有不同的状态，从而可以获得不同的数据，所以叫做&amp;#8220;具象状态传输&amp;#8221; :)&lt;/p&gt;&#xD;
&lt;p&gt;除了上面的用法，REST 还有进一步的扩展。&lt;/p&gt;&#xD;
&lt;p&gt;我们在 Web 应用中处理来自客户端的请求时，通常只考虑 GET 和 POST 这两种 HTTP 请求方法。实际上，HTTP 还有 HEAD、PUT、DELETE 等请求方法。而在 REST 架构中，用不同的 HTTP 请求方法来处理对资源的 CRUD（创建、读取、更新和删除）操作：&lt;br /&gt;&amp;#9670;POST: 创建 &lt;br /&gt;&amp;#9670;GET: 读取 &lt;br /&gt;&amp;#9670;PUT: 更新 &lt;br /&gt;&amp;#9670;DELETE: 删除 &lt;/p&gt;&#xD;
&lt;p&gt;经过这样的一番扩展，我们对一个资源的 CRUD 操作就可以通过同一个 URI 完成了&lt;font color="#000000"&gt;：&lt;/font&gt;&lt;br /&gt;http://www.example.com/photo/logo（读取）&lt;br /&gt;仍然保持为 [GET] http://www.example.com/photo/logo&lt;/p&gt;&#xD;
&lt;p&gt;http://www.example.com/photo/logo/create（创建）&lt;br /&gt;改为 [POST] http://www.example.com/photo/logo&lt;/p&gt;&#xD;
&lt;p&gt;http://www.example.com/photo/logo/update（更新）&lt;br /&gt;改为 [PUT] http://www.example.com/photo/logo&lt;/p&gt;&#xD;
&lt;p&gt;http://www.example.com/photo/logo/delete（删除）&lt;br /&gt;改为 [DELETE] http://www.example.com/photo/logo&lt;/p&gt;&#xD;
&lt;p&gt;从而进一步规范了资源标识的使用。&lt;/p&gt;&#xD;
&lt;p&gt;通过 REST 架构，Web 应用程序可以用一致的接口（URI）暴露资源给外部世界，并提供对资源的操作服务。这对于以资源为中心的 Web 应用来说非常重要。例如照片共享网站、用户社区等。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fireball/aggbug/1837334.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fireball/archive/2010/09/28/1837334.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fireball/archive/2010/08/20/1804196.html</id><title type="text">山人自有妙招－sharepoint正式环境不能调试</title><summary type="text">最近在做的sharepoint项目上，测试服务器上开发的内容，特别是eventHandler等，在正式环境中却会经常发现没有效果，又不能调试。很郁闷。 这个项目中，我们集成了腾讯通的消息提醒功能，走流程审批，发会议通知等都会有消息提醒。所以我就加了一个try,catch，将错误信息通过腾讯通发个消息给我自己。</summary><published>2010-08-20T01:28:00Z</published><updated>2010-08-20T01:28:00Z</updated><author><name>风渐寒pro</name><uri>http://www.cnblogs.com/fireball/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fireball/archive/2010/08/20/1804196.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fireball/archive/2010/08/20/1804196.html"/><content type="html">&lt;p&gt;最近在做的sharepoint项目上，测试服务器上开发的内容，特别是eventHandler等，在正式环境中却会经常发现没有效果，又不能调试。很郁闷。&lt;/p&gt;&#xD;
&lt;p&gt;这个项目中，我们集成了腾讯通的消息提醒功能，走流程审批，发会议通知等都会有消息提醒。所以我就加了一个try,catch，将错误信息通过腾讯通发个消息给我自己。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img style="width: 589px; height: 169px" border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/fireball/rtx调试.GIF" width="589" height="169" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fireball/aggbug/1804196.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fireball/archive/2010/08/20/1804196.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fireball/archive/2010/07/27/1785857.html</id><title type="text">Sharepoint ListType Id</title><summary type="text">备忘：List IdList Description100Generic list101Document library102Survey103Links list104Announcements list105Contacts list106Events list107Tasks list108Discussion board109Picture library110Data sources11...</summary><published>2010-07-27T03:10:00Z</published><updated>2010-07-27T03:10:00Z</updated><author><name>风渐寒pro</name><uri>http://www.cnblogs.com/fireball/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fireball/archive/2010/07/27/1785857.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fireball/archive/2010/07/27/1785857.html"/><content type="html">&lt;p&gt;备忘：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;table cellspacing="0" cellpadding="1" border="0"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;th align="left"&gt;List Id&lt;/th&gt;&#xD;
&lt;th align="left"&gt;List Description&lt;/th&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;100&lt;/td&gt;&#xD;
&lt;td&gt;Generic list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;101&lt;/td&gt;&#xD;
&lt;td&gt;Document library&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;102&lt;/td&gt;&#xD;
&lt;td&gt;Survey&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;103&lt;/td&gt;&#xD;
&lt;td&gt;Links list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;104&lt;/td&gt;&#xD;
&lt;td&gt;Announcements list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;105&lt;/td&gt;&#xD;
&lt;td&gt;Contacts list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;106&lt;/td&gt;&#xD;
&lt;td&gt;Events list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;107&lt;/td&gt;&#xD;
&lt;td&gt;Tasks list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;108&lt;/td&gt;&#xD;
&lt;td&gt;Discussion board&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;109&lt;/td&gt;&#xD;
&lt;td&gt;Picture library&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;110&lt;/td&gt;&#xD;
&lt;td&gt;Data sources&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;111&lt;/td&gt;&#xD;
&lt;td&gt;Site template gallery&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;112&lt;/td&gt;&#xD;
&lt;td&gt;User Information list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;113&lt;/td&gt;&#xD;
&lt;td&gt;Web Part gallery&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;114&lt;/td&gt;&#xD;
&lt;td&gt;List template gallery&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;115&lt;/td&gt;&#xD;
&lt;td&gt;XML Form library&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;116&lt;/td&gt;&#xD;
&lt;td&gt;Master pages gallery&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;117&lt;/td&gt;&#xD;
&lt;td&gt;No-Code Workflows&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;118&lt;/td&gt;&#xD;
&lt;td&gt;Custom Workflow Process&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;119&lt;/td&gt;&#xD;
&lt;td&gt;Wiki Page library&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;120&lt;/td&gt;&#xD;
&lt;td&gt;Custom grid for a list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;130&lt;/td&gt;&#xD;
&lt;td&gt;Data Connection library&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;140&lt;/td&gt;&#xD;
&lt;td&gt;Workflow History&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;150&lt;/td&gt;&#xD;
&lt;td&gt;Gantt Tasks list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;200&lt;/td&gt;&#xD;
&lt;td&gt;Meeting Series list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;201&lt;/td&gt;&#xD;
&lt;td&gt;Meeting Agenda list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;202&lt;/td&gt;&#xD;
&lt;td&gt;Meeting Attendees list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;204&lt;/td&gt;&#xD;
&lt;td&gt;Meeting Decisions list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;207&lt;/td&gt;&#xD;
&lt;td&gt;Meeting Objectives list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;210&lt;/td&gt;&#xD;
&lt;td&gt;Meeting text box&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;211&lt;/td&gt;&#xD;
&lt;td&gt;Meeting Things To Bring list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;212&lt;/td&gt;&#xD;
&lt;td&gt;Meeting Workspace Pages list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;301&lt;/td&gt;&#xD;
&lt;td&gt;Blog Posts list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;302&lt;/td&gt;&#xD;
&lt;td&gt;Blog Comments list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;303&lt;/td&gt;&#xD;
&lt;td&gt;Blog Categories list&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;1100&lt;/td&gt;&#xD;
&lt;td&gt;Issue tracking&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;1200&lt;/td&gt;&#xD;
&lt;td&gt;Administrator tasks list&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fireball/aggbug/1785857.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fireball/archive/2010/07/27/1785857.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fireball/archive/2010/06/16/1758933.html</id><title type="text">使用 SharePoint 2007 进行安全性编程(转)</title><summary type="text">Office Space使用 SharePoint 2007 进行安全性编程Ted Pattison代码下载位置: OfficeSpace2008_02.exe (209 KB) Browse the Code Online 目录 外部安全主体和 SPUser 对象 添加已通过身份验证的用户和外部用户 使用权限级别 WSS 组 标识、提升和模拟 安全对象 结束语 您可能已经对使用 Windows&amp;...</summary><published>2010-06-16T03:10:00Z</published><updated>2010-06-16T03:10:00Z</updated><author><name>风渐寒pro</name><uri>http://www.cnblogs.com/fireball/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fireball/archive/2010/06/16/1758933.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fireball/archive/2010/06/16/1758933.html"/><content type="html">&lt;table  style="width: 101.3%" cellspacing="0" cellpadding="0" width="100%" border="0"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td style="border-right: 1pt solid; padding-right: 7.5pt; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; width: 415.3pt; padding-top: 0cm; border-bottom: medium none" valign="top" width="554"&gt;&#xD;
&lt;p  style="line-height: 27pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 27pt; text-transform: uppercase; color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;Office Space&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 15pt; text-align: left" align="left"&gt;&lt;span style="font-size: 15pt; color: black; font-family: 宋体"&gt;使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 15pt; color: black; font-family: 'Segoe UI','sans-serif'"&gt; SharePoint 2007 &lt;/span&gt;&lt;span style="font-size: 15pt; color: black; font-family: 宋体"&gt;进行安全性编程&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 15pt; color: black; font-family: 'Segoe UI','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: black; font-family: 'Segoe UI','sans-serif'"&gt;Ted Pattison&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="text-transform: uppercase; color: #003399; font-family: 宋体"&gt;代码下载位置&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="text-transform: uppercase; color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;: &lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://download.microsoft.com/download/f/2/7/f279e71e-efb0-4155-873d-5554a0608523/OfficeSpace2008_02.exe" target="_blank"&gt;&lt;span style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;OfficeSpace2008_02.exe&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;strong&gt;&lt;span lang="EN-US" style="text-transform: uppercase; color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;(209 KB) &lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/magazine/cc164224.aspx" target="_blank"&gt;&lt;span style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;Browse the Code Online&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPETYPE id="_x0000_t75" path=" m@4@5 l@4@11@9@11@9@5 xe" stroked="f" filled="f" o:spt="75" o:preferrelative="t" coordsize="21600,21600"&gt;&lt;V:STROKE joinstyle="miter"&gt;&lt;/V:STROKE&gt;&lt;V:FORMULAS&gt;&lt;V:F eqn="if lineDrawn pixelLineWidth 0 "&gt;&lt;/V:F&gt;&lt;V:F eqn="sum @0 1 0 "&gt;&lt;/V:F&gt;&lt;V:F eqn="sum 0 0 @1 "&gt;&lt;/V:F&gt;&lt;V:F eqn="prod @2 1 2 "&gt;&lt;/V:F&gt;&lt;V:F eqn="prod @3 21600 pixelWidth "&gt;&lt;/V:F&gt;&lt;V:F eqn="prod @3 21600 pixelHeight "&gt;&lt;/V:F&gt;&lt;V:F eqn="sum @0 0 1 "&gt;&lt;/V:F&gt;&lt;V:F eqn="prod @6 1 2 "&gt;&lt;/V:F&gt;&lt;V:F eqn="prod @7 21600 pixelWidth "&gt;&lt;/V:F&gt;&lt;V:F eqn="sum @8 21600 0 "&gt;&lt;/V:F&gt;&lt;V:F eqn="prod @7 21600 pixelHeight "&gt;&lt;/V:F&gt;&lt;V:F eqn="sum @10 21600 0 "&gt;&lt;/V:F&gt;&lt;/V:FORMULAS&gt;&lt;V:PATH o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/V:PATH&gt;&lt;O:LOCK v:ext="edit" aspectratio="t"&gt;&lt;/O:LOCK&gt;&lt;/V:SHAPETYPE&gt;&lt;V:SHAPE id="ctl00_mainContentContainer_cpe195298_i" style="visibility: visible; width: 0.75pt; height: 0.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1025"&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;目录&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/magazine/cc163287.aspx#S1" target="_blank"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;外部安全主体和&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; SPUser &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;对象&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/magazine/cc163287.aspx#S2" target="_blank"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;添加已通过身份验证的用户和外部用户&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/magazine/cc163287.aspx#S3" target="_blank"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;使用权限级别&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/magazine/cc163287.aspx#S4" target="_blank"&gt;&lt;span style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;组&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/magazine/cc163287.aspx#S5" target="_blank"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;标识、提升和模拟&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/magazine/cc163287.aspx#S6" target="_blank"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;安全对象&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://msdn.microsoft.com/zh-cn/magazine/cc163287.aspx#S7" target="_blank"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;结束语&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;您可能已经对使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 6.5pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#174;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;和&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ASP.NET &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的安全性进行安全编程的基础有所了解，但您对&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows SharePoint&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 6.5pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#174;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Services 3.0 (WSS) &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;增加的安全保护又了解多少呢？在本期的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Office Space &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;专栏中，我将重点介绍&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;引入的一些新的安全术语和概念，并为您展现一个使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象模型实现安全编程的新世界。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;建议您下载本专栏附带的示例项目，并按照本专栏其他部分提供的代码执行操作。该项目已配置为在构建过程完成之后运行一个批处理文件，该批处理文件会将所有的项目组件编译成一个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;解决方案包，并在本地&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;服务器场中安装该包。在&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;建立项目并安装解决方案之后，您可以浏览任意网站集，并启用针对网站集的名为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8220;Security Demo&amp;#8221;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的功能。然后您就可以通过&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8220;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;网站操作&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8221;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;菜单导航到自定义应用程序页，这些页面通过一些代码演示了&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;安全编程技术。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;strong&gt;&lt;span style="color: teal; font-family: 宋体"&gt;外部安全主体和&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: teal; font-family: 'Segoe UI','sans-serif'"&gt; SPUser &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: teal; font-family: 宋体"&gt;对象&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: teal; font-family: 'Segoe UI','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;大多数安全模型都是基于安全主体的。每个安全主体均表示一个用户或一个组。用户拥有帐户，并通过这些帐户进行身份验证。身份验证完成后，每位用户将获得一个身份标识。当用户使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户进行身份验证时，您可以使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; System.Security &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;命名空间中的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Microsoft&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 6.5pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#174;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; .NET Framework &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;安全类来检索身份标识，该标识回指到特定的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户并允许您查看该用户的登录名：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl04');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_32" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1026" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl04');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;WindowsIdentity identity = WindowsIdentity.GetCurrent();&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;string WindowsLogin = identity.Name;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WindowsIdentity&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;，您可以动态地创建一个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WindowsPrincipal&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;，该对象允许您通过测试查看当前用户是属于&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Active Directory&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 6.5pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#174;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组还是本地&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组，如下所示：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl05');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_33" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1027" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl05');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;WindowsIdentity identity = WindowsIdentity.GetCurrent();&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;WindowsPrincipal principal = new WindowsPrincipal(identity);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;if( principal.IsInRole(@"LITWAREINC\AllFTE") ){&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;// perform operation allowed for fulltime employees&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;}&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;ASP.NET &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;同时支持&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;身份验证和基于表单的身份验证&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; (FBA)&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;ASP.NET &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;中的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; User &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象通过基于&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; IPrincipal &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;接口（而非&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WindowsPrincipal &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;类）进行建模的方式摆脱了对&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户的依赖性。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;ASP.NET &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;运行库根据当前用户是使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户还是使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; FBA &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户进行身份验证，来动态创建不同类型的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; IPrincipal &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl06');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_34" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1028" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl06');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;IPrincipal AspUser = HttpContext.Current.User;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;string AspUserName = AspUser.Identity.Name;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;ASP.NET &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; User &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象还提供了使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; IsInRole &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;方法检查用户是否属于特殊角色的方式。对于&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户，&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;IsInRole &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;方法让您能够查看当前用户是否为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Active Directory &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组的成员。如果您使用的是&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ASP.NET &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;角色提供程序附带的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; FBA &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户，也可以使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; IsInRole &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;方法来检查是否已将&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; FBA &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户添加到特定的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ASP.NET &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;角色：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl07');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_35" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1029" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl07');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;IPrincipal AspUser = HttpContext.Current.User;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;if(AspUser.IsInRole("Site Administrators") {&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;// perform privileged operation&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;}&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;身份验证操作会生成某种形式的回执，系统在运行时使用该回执来表示用户身份，以及对组或角色中的成员资格进行跟踪。如果用户使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户进行身份验证，则身份验证的回执为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;安全令牌。如果用户使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; FBA &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户进行身份验证，则身份验证的回执为由&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ASP.NET &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;运行库和特定身份验证提供程序创建的一个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; HTTP Cookie&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;了解&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;不支持用户身份验证这一点是十分重要的。但&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;可以利用各种&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ASP.NET &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;身份验证提供程序提供的底层身份验证组件。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对于网站安全保护的价值在于它能够对授权和访问控制进行配置。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;能够在网站集范围内对外部安全主体（例如，&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户、&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;FBA &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户、&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组和&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ASP.NET &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;角色）进行跟踪。借助&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;，您还可以配置分配给这些外部主体的权限，实际上是授予用户访问&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;安全对象（例如网站、列表、项和文档）的权限。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;请注意，网站集在配置授权和访问控制时发挥了极其重要的作用。在跟踪外部主体和配置权限时，&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;将每个网站集视为其彼此独立的孤岛。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的高级设计有意将每个网站集隔离开来，以便一个网站集中的用户安全设置不会影响到其他网站集中的权限或访问控制策略。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-family: 宋体"&gt;1&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;、&lt;/span&gt;&lt;span lang="EN-US"&gt;SPUser&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象模型使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPUser &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象来表示外部安全主体。您可以通过当前的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPWeb &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象检索当前用户的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPUser &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl08');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_36" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1030" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl08');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPWeb site = SPContext.Current.Web;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPUser user = site.CurrentUser;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;string DisplayName = user.Name;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;string Login = user.LoginName;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;string EMail = user.Email;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;string User Notes = user.Notes;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;SPUser &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象公开了外部安全主体的各种属性，例如，登录名、显示名称和电子邮件地址。将外部主体添加到网站时，通常可以从底层用户存储库（例如&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Active Directory &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;域）中检索到这些属性。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;SPUser &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象还提供了用于跟踪特定于&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的元数据的属性，例如&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8220;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;注释&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8221;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;字段。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;将外部用户、组和角色的配置文件数据保留在隐藏列表（称为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8220;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户信息列表&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8221;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;）中。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;每次提供新的网站集时，会在首要站点中自动创建&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8220;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户信息列表&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8221;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;作为隐藏列表。然后，当首次为主体分配权限时，或主体首次通过安全检查访问安全对象时，&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;会为每个外部主体添加一个新的配置文件。&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; color: #ff2ad6; font-family: 宋体"&gt;请注意，&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #ff2ad6; font-family: 'Verdana','sans-serif'"&gt;&amp;#8220;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; color: #ff2ad6; font-family: 宋体"&gt;用户信息列表&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #ff2ad6; font-family: 'Verdana','sans-serif'"&gt;&amp;#8221;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; color: #ff2ad6; font-family: 宋体"&gt;中存储的用户配置文件不能跨网站集进行扩展&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt;background: #d9d9d9; color: #0070c0; font-family: 宋体; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial"&gt;－&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;用户更新一个网站集中的配置文件设置后，不会对其他网站集中该用户的配置文件设置造成更改&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;strong&gt;&lt;span style="font-size: 9pt;background: #d9d9d9; color: #0070c0; font-family: 宋体; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial"&gt;另一个&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;易混淆的地方就是&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; SPUser &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;对象通常并不总是代表实际用户&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;。&lt;/span&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #d419ff; font-family: 'Verdana','sans-serif'"&gt;SPUser&lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象也可以代表&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #d419ff; font-family: 'Verdana','sans-serif'"&gt;Active Directory &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; color: #d419ff; font-family: 宋体"&gt;组&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;和&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #d419ff; font-family: 'Verdana','sans-serif'"&gt;ASP.NET &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; color: #d419ff; font-family: 宋体"&gt;角色&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;。&lt;/span&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;不仅跟踪&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&amp;#8220;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;用户信息列表&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&amp;#8221;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;中每种外部主体的配置文件，而且还跟踪外部用户的配置文件数据&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;SharePoint &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;安全模型的许多编程方面的内容都是通过&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPWeb &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象在网站级别公开。如果您要查看哪些用户是当前网站的成员，就会发现这一点。一个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPWeb &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象可公开三种不同的用户集合，如以下代码段所示：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl09');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_37" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1031" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl09');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPWeb site = SPContext.Current.Web;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPUserCollection c1 = site.Users;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPUserCollection c2 = site.AllUsers;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPUserCollection c3 = site.SiteUsers;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt;background: #d9d9d9; color: #d419ff; font-family: 'Verdana','sans-serif'; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial"&gt;Users&lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US" style="font-size: 9pt;background: #d9d9d9; color: #d419ff; font-family: 'Verdana','sans-serif'; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合是三个集合中包含成员最少的集合。该集合包含了当前网站中所有已显式分配了权限的外部主体。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt;background: #d9d9d9; color: #d419ff; font-family: 'Verdana','sans-serif'; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial"&gt;AllUsers&lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合包括&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Users &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合中的所有成员，以及通过组或角色成员资格使用隐式权限访问过网站中的对象的外部用户。例如，假定名为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Brian &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的用户（登录名&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; LITWAREINC\BrianC&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;）从未被显式授予访问某个网站和查看特定列表的权限。但他也许仍可以查看列表，因为他所属的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Active Directory &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组已被配置了列表查看权限。当&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Brian &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;首次访问网站或其中任一对象（比如，使用隐式权限查看一个列表）时，他会被添加为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; AllUsers &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合的成员，但不会被添加为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Users &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合的成员。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt;background: #d9d9d9; color: #d419ff; font-family: 'Verdana','sans-serif'; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial"&gt;SiteUsers&lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合是包含了当前网站集中每个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; AllUsers &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合的成员的一个聚合。该集合的成员包括所有已分配了对网站集中所有对象的访问权限的外部主体，以及所有已被授予使用隐式权限访问网站集中所有对象的权限的外部用户。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;strong&gt;&lt;span style="color: teal; font-family: 宋体"&gt;添加已通过身份验证的用户和外部用户&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: teal; font-family: 'Segoe UI','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;那么，如何为使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Active Directory &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户通过身份验证的用户创建新的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户配置文件？如果您需要创建一个自定义用户界面组件，让标准用户或网站集所有者能够从&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Active Directory &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;域中选择用户或组，您确实应该了解一下&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt;background: #d9d9d9; color: #d419ff; font-family: 'Verdana','sans-serif'; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial"&gt;PeoplePicker&lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;控件的用法（参见&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;图&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; 1&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;）。这是&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;附带的一个便捷、可重用的控件类型。您可以使用如下的控件标记将此控件添加到自定义应用程序页或&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; User &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;控件：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;img id="PeoplePicker" height="244" alt="" src="http://images.cnblogs.com/cnblogs_com/leimoo/%E6%9C%AA%E5%91%BD%E5%90%8D1.JPG" width="400" /&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_38" style="visibility: visible; width: 300pt; height: 183pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/cc163287.fig01(zh-cn).gif" type="#_x0000_t75" o:spid="_x0000_i1032"&gt;&lt;V:IMAGEDATA src="file5851.files/image002.png" o:title="cc163287"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;图&lt;/span&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt; 1&lt;/span&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;&amp;nbsp;PeoplePicker &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;控件&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;(&lt;/span&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;单击该图像获得较大视图&lt;/span&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;)&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl11');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_39" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1033" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl11');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&amp;lt;SharePoint:PeopleEditor &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ID="pickerPrincipal" &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;AllowEmpty="false" &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ValidatorEnabled="true"&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;MultiSelect="false" &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SelectionSet="User, SecGroup, DL" &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Width="280px"&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;runat="server"&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/&amp;gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;在此示例中，我对&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; PeoplePicker &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;控件进行了配置，为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SelectSet &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;属性分配了&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; User&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;、&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;SecGroup &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;和&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; DL &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;三个值。通过配置这些&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SelectSet &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;设置，该控件可以让用户根据&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Active Directory &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;选择和解析用户、组或通讯组列表。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;您可以通过编程方式访问&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; PeoplePicker &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;控件属性，以便在用户使用该控件选择一个或多个安全主体后检索基本帐户的相关登录帐户名。然后，您可以编写代码来实际将这些主体添加为网站成员并为其配置访问权限。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;现在，我来介绍如何将外部用户或组添加为网站成员。简单了解&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象模型之后，您可能会认为只需将外部安全主体直接添加到某个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPUser &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合（例如&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SiteUsers&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;）即可：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl12');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_40" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1034" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl12');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPWeb site = SPContext.Current.Web;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;site.SiteUsers.Add(@"LITWAREINC\BrianC",&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"brianc@litwareinc.com",&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"Brian Cox",&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"Notes about Brian Cox");&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;site.SiteUsers.Add(@"LITWAREINC\AllFTE",&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"allFTE@litwareinc.com",&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;"All Full-time Employees",&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"Notes about FTE DL");&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;尽管这种方法确实能够在&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8220;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户信息列表&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8221;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;中为外部主体创建配置文件，但由于无法分配权限，因此对安全性几乎没有作用。相比之下，添加新的外部安全主体的一个更好的方式是要对权限进行分配，以便用户有权访问当前网站。但首先您需要学习如何创建和分配权限级别。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;strong&gt;&lt;span style="color: teal; font-family: 宋体"&gt;使用权限级别&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: teal; font-family: 'Segoe UI','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;权限级别是在网站范围内定义的权限命名集。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;内建了四个权限级别：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;Read&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;（读取）、&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;Contribute&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;（参与讨论）、&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;Design&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;（设计）和&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Full Access&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;（完全访问）。如果需要在级别设置上更为精细，可以使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象模型或通过网站集所有者能够访问的标准&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;管理页，创建属于自己的自定义权限级别。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;权限级别有时称为角色，在&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象模型中通常使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPRoleDefinition &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象表示这些权限级别。您可以使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPRoleAssignment &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象为外部用户或组分配权限级别。例如，此处我将内置的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Contribute &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;权限级别分配给登录名为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; LITWAREINC\BrianC &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl13');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_41" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1035" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl13');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPWeb site = SPContext.Current.Web;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPRoleDefinition role = site.RoleDefinitions["Contribute"];&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPRoleAssignment roleAssignment;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;roleAssignment = new SPRoleAssignment(@"LITWAREINC\BrianC",&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"brianc@litwareinc.com",&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"Brian Cox",&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"Notes about Brian Cox");&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;roleAssignment.RoleDefinitionBindings.Add(role);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;site.RoleAssignments.Add(roleAssignment);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;使用这种方法，您不必将用户添加到某一&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPUser &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合中，因为在网站内首次为外部用户或组分配权限时&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;已自动完成这一操作。您刚才看到的代码会在&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8220;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户信息列表&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8221;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;中创建一个用户配置文件（如果原来不存在），并将该用户添加为当前网站的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Users &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合的成员。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: teal; font-family: 'Segoe UI','sans-serif'"&gt;WSS &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: teal; font-family: 宋体"&gt;组&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: teal; font-family: 'Segoe UI','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;安全模型不仅将外部安全主体表示为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPUser &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象，而且还提供了&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组，以方便网站集范围内的权限配置。例如，您可以在网站集中为诸如&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Site Members&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;（网站成员）、&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;Content Manager&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;（内容管理员）和&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Site Administrators&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;（站点管理员）的特定用户角色设计一系列&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组。完成此项操作之后，您只需为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组分配权限级别即可配置网站的安全设置，而无需将权限级别直接分配给&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPUser &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;创建&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组明显的好处是有助于消除添加或删除新的外部用户和组时重新配置权限的需要。您只需创建网站时配置权限，即可做到一劳永逸。之后，只需向&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组中添加或从其中删除外部用户和组即可。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组采用与&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Active Directory &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组完全相同的设计原则，二者的主要区别在于&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组仅在单个网站集范围内定义和存在。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象模型中将&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组表示为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPGroup &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;SPWeb &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象公开两个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPGroup &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象集合，分别为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Groups &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;和&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SiteGroups&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;Groups &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合包括当前网站中所有已直接分配权限的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组，而&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SiteGroups &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合则是&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Groups &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合的超集，其中包括所有在当前网站集内创建的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;如果您希望创建一个新的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组，您应该调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SiteGroups &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集合公开的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Add &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;方法，然后在目标网站内为新的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组分配一个或多个权限级别。&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;图&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; 2&lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;所示为新建一个名为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Site Members &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组并在当前网站内为其分配内置&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Contribute &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;权限级别的示例。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="ctl00_mainContentContainer_cpe195299_i" style="visibility: visible; width: 0.75pt; height: 0.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1036"&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&amp;nbsp;Figure&amp;nbsp;2&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;创建一个新的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;组&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl17');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_43" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1037" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl17');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPWeb site = SPContext.Current.Web;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPUser currentUser = site.CurrentUser;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;// create new group&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;site.SiteGroups.Add("Site Members", currentUser, currentUser,&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"Site Group created at " + DateTime.Now.ToString());&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;// assign permission level to new group&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPGroup NewGroup = site.SiteGroups["Site Members"];&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPRoleAssignment roleAssignment = new SPRoleAssignment(NewGroup);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPRoleDefinition permLevel = site.RoleDefinitions["Contribute"];&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;roleAssignment.RoleDefinitionBindings.Add(permLevel);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;site.RoleAssignments.Add(roleAssignment);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;新的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组创建完毕后，将外部用户和组添加为成员就变得轻而易举了。由一个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPGroup &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象提供一个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; AddUser &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;方法，该方法接受一个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPUser &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象，然后您就可以添加外部用户和组了：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl18');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_44" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1038" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl18');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPWeb site = SPContext.Current.Web;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPUser currentUser = site.CurrentUser;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPGroup group = site.SiteGroups["Site Members"];&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPUser user1 = site.SiteUsers[@"LITWAREINC\BrianC"];&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPUser user2 = site.SiteUsers[@"LITWAREINC\AllFTE"];&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;group.AddUser(user1);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;group.AddUser(user2);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;strong&gt;&lt;span style="color: teal; font-family: 宋体"&gt;标识、提升和模拟&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: teal; font-family: 'Segoe UI','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS Web &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;应用程序的工作进程是通过&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; IIS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;应用程序池进行控制的。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;Web &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;应用程序的工作进程标识可保证您对进程的关注，您可以通过&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SharePoint &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;管理中心应用程序配置这些标识。您应根据域帐户（例如&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; LITWAREINC\SP_WorkerProcess&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;）配置&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Web &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;应用程序的工作进程标识，而不应根据本地帐户（例如&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; NETWORK SERVICE&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;）进行配置。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;请注意，&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;Web &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;应用程序的工作进程标识必须是一个拥有特权的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户，该账户已配置了&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SQL Server &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;权限，能够对一个或多个内容数据库进行读写操作。运行&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SharePoint &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;管理中心网站的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Web &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;应用程序的工作进程标识必须具有更多特权，因为它需要拥有对场的配置数据库进行读写操作的权限。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;当&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Web &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;部件或自定义应用程序页的代码响应用户请求开始执行时，该代码不会以托管&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Web &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;应用程序的工作进程标识执行。而是由&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;通过模拟将&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;安全上下文切换到其他&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户。实际上，如果您查看&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS Web &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;应用程序的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; web.config &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;文件，会看到以下项：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl19');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_45" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1039" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl19');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&amp;lt;configuration&amp;gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;system.web&amp;gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;identity impersonate="true" /&amp;gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/system.web&amp;gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&amp;lt;/configuration&amp;gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;如果是为已使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户进行身份验证的用户执行请求，则该请求会模拟当前用户的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识。但是，同样的方法并不适用于&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; FBA &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户，因为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; FBA &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;身份验证不会创建&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;安全令牌，而且也没有&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识。因此，使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; FBA &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;身份验证的用户的请求会模拟已经配置为匿名访问的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户的身份标识。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;IIS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;中为此帐户默认分配的是&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; IUSER_MACHINENAME &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户，但您可以（并且通常应该）重新配置此帐户以指向域帐户。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;现在，让我们回过头来看一看更高级别的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;安全编程。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;安全模型通常会强制要求开发人员对&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识和&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识加以区分。但是在一个请求中，如果当前&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识和当前&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识都指向同一&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;登录名时，则上述情况可能不太明显。而在使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; FBA &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的情况下，事情就会变得更加复杂。例如，&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识可能指向名为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Andrew &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; FBA &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户，而基本&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识则基于&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; IUSER_MACHINENAME &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户。当您的代码尝试访问&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象时，&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;会使用用户的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识运行访问检查。而当您的代码尝试访问&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;之外的外部对象（例如&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;操作系统维护的文件）时，操作系统会使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识（代码正以此标识执行）运行访问检查。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;有时候要执行代码，您需要使用比当前用户权限更高的权限。例如，我们可以假设这样一个情景：在处理一个仅拥有只读权限的用户的请求时，您的代码必须向一个列表写入数据。而默认情况下，您的代码要以与当前用户相同的权限来运行。这时，您可以调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPSecurity &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;类的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; RunWithElevatedPrivileges &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;方法，提升代码的安全上下文。请注意，调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; RunWithElevatedPrivileges &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;将同时提升&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识和&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;现在想像这样一种情形：用户通过登录名&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; LITWAREINC\BrianC &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户进行身份验证。调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; RunWithElevatedPrivileges &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;会将&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识提升为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SHAREPOINT\System &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;SHAREPOINT\System &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户内置于&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;运行库，在&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;授权模型中拥有完全的权限。调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; RunWithElevatedPrivileges &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;还将切换执行代码的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识，从而该代码以当前&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Web &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;应用程序的工作进程标识运行：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl20');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_46" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1040" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl20');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;// BEFORE ELEVATION&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;// WSS User identity = LITWAREINC\BrianC&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;// Windows identity = LITWAREINC\BrianC&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPSecurity.RunWithElevatedPrivileges(delegate() {&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;// AFTER ELEVATION&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;// WSS User identity = SHAREPOINT\System&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;// Windows identity = LITWAREINC\SP_WorkerProcess&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;});&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;在某些情景中，您可能会选择在尝试访问&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;文件系统或&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SQL Server &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;数据库中的文件之前调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; RunWithElevatedPrivileges &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;方法，以便更改当前调用的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识。另请注意，如果您从&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识切换到进程标识（例如&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; LITWAREINC\SP_WorkerProcess&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;），则可以不必在&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Active Directory &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;环境下对委托进行配置。当您的自定义&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Web &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;部件能够使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;集成身份验证访问远程&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SQL Server &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;数据库中的数据时，这项功能会非常有价值。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;另外还会出现其他情景，您可能需要通过调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; RunWithElevatedPrivileges &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;方法将&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识提升为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SHAREPOINT\System&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;，以便您的代码能够执行在当前用户权限下不允许的操作。一旦代码能够以&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SHAREPOINT\System &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;身份运行，您就可以在&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;授权子系统中几乎随心所欲地执行任意操作。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; RunWithElevatedPrivileges &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;提升为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SHAREPOINT\System &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;帐户也有其相对棘手的一方面。例如，设想您调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; RunWithElevatedPrivileges&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;，然后尝试通过&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPContext.Current &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;属性访问当前网站集或网站中的对象。您也许想不到代码会出错，但事实可能出乎您的意料：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl21');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_47" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1041" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl21');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPSecurity.RunWithElevatedPrivileges(delegate() {&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;SPSite siteCollection = SPContext.Current.Site;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;// next line fails if current user is Contributor&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;string siteCollectionOwner = siteCollection.Owner;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;});&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;为什么将&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识提升为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SHAREPOINT\System &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;之后本示例代码会执行失败？这与&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPSite &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象的创建时间有关。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;SPSite &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象及其子对象&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPWeb &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的权限实际上并不依赖于当前&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识。而是依赖于创建&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPSite &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象时的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识。在这里，由于可通过&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPContext.Current &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;进行访问的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPSite &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象是在之前的请求中创建的，在该对象创建时，您的代码还无法切换其&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;因此，您需要使用一点技巧，在调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; RunWithElevatedPrivileges &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;并将&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识提升为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SHAREPOINT\System &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;之后，创建一个新的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPSite &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl22');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_48" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1042" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl22');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;SPSecurity.RunWithElevatedPrivileges(delegate() {&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;using (SPSite elevatedSiteCollection = new SPSite(this.Site.ID)) {&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;using (SPWeb elevatedSite =&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;elevatedSiteCollection.OpenWeb(this.Web.ID)) {&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// access elevatedSiteCollection and &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//elevatedSite as SHAREPOINT\System&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;}&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; color: #333333; font-family: 宋体"&gt;});&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;这样就可以打开网站集及其中的网站，以便您的代码能以&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SHAREPOINT\System &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;身份访问对象。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;您可能还发现有必要模拟特定的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识。这种方式在为事件处理程序或自定义工作流模板编写代码时（这种情况下代码默认以&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SHAREPOINT\System &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;身份运行）非常常见。例如，您可能希望在创建新对象之前模拟特定&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识，以便&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户能被识别为新对象的所有者。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;为了模拟&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识，您必须先创建一个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPUserToken &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象。您可以使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPUser &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; UserToken &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;属性实现这一操作。创建好&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPUserToken &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象之后，您就可以使用该对象利用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPSite &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;类构造函数的重载版本来创建新的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPSite &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象。此方法如&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;图&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; 3&lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;所示。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="ctl00_mainContentContainer_cpe195300_i" style="visibility: visible; width: 0.75pt; height: 0.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1043"&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&amp;nbsp;Figure&amp;nbsp;3&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;模拟&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;用户标识&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl26');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_50" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1044" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl26');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPWeb siteCollection = SPContext.Current.Site;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPWeb site = SPContext.Current.Web;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;// get SPUser object and acquire token&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPUser targetUser = site.SiteUsers[@"LITWAREINC\BrianC"];&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPUserToken token = targetUser.UserToken;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;// create new SPSite and SPWeb object to impersonate user&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;using (SPSite impersonatedSiteCollection = &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;new SPSite(siteCollection.ID, token)) {&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;using (SPWeb impersonatedSite = &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;impersonatedSiteCollection.OpenWeb(site.ID)) {&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// WSS identity switched to impersonate BrianC&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// Windows identity does not change&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;}&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;}&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;关于使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户模拟，我需要指出几点重要的注意事项。首先，模拟&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户与调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; RunWithElevatedPrivileges &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;不同，因为前者不会更改当前&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识。例如，如果在模拟&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户之前一个请求以&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; LITWAREINC\SP_WorkerProcess &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识身份运行，则代码将以同一&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识身份继续运行。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户模拟不会将当前&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Windows &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;标识更改为被模拟用户的标识。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;同样需要注意的是，代码要模拟另一个用户，必须在特权状态下运行。但在事件处理程序或自定义工作流模板中无需担心这一问题，因为在这类情况下代码默认以&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SHAREPOINT\System &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;身份运行。但是，&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;Web &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;部件或自定义应用程序页中的代码在其有能力模拟其他&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户标识之前可能需要调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; RunWithElevatedPrivileges&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;strong&gt;&lt;span style="color: teal; font-family: 宋体"&gt;安全对象&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: teal; font-family: 'Segoe UI','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;配置&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;安全性的真正优势在于安全对象（例如网站、列表和列表项）提供的灵活性。每个安全对象都可以包含一个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8220;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;访问控制列表&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8221;(ACL)&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;，这是一个二进制数据结构，&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;在运行时会使用它来确定安全主体是否已被授予了访问权限。默认情况下，首要网站是唯一拥有&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ACL &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的安全对象。子对象（例如列表、列表项和子网站）都继承其父对象的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ACL&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;，除非它们拒绝继承并提供一个自己拥有的唯一&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ACL&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象模型中包含名为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ISecurableObject &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的接口，用于在&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;网站集中建立安全对象模型（参见&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;图&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; 4&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;）。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;ISecurableObject &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;接口是通过&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPWeb &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象、&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;SPList &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象和&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPItem &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象实现的，它为在运行时执行访问检查以及配置权限提供了基础。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;img id="ISecurableObject" height="170" alt="" src="http://images.cnblogs.com/cnblogs_com/leimoo/%E6%9C%AA%E5%91%BD%E5%90%8D2.JPG" width="400" /&gt;&lt;br /&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_51" style="visibility: visible; width: 300pt; height: 127.5pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/cc163287.fig04(zh-cn).gif" type="#_x0000_t75" o:spid="_x0000_i1045"&gt;&lt;V:IMAGEDATA src="file5851.files/image003.png" o:title="cc163287"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;图&lt;/span&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt; 4&lt;/span&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;&amp;nbsp;ISecurableObject &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;接口&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;(&lt;/span&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;单击该图像获得较大视图&lt;/span&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;)&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;当您着手在网站集中配置权限时，理解到所有网站、列表和列表项一起组成了安全对象的单一层次结构这一点是十分重要的。默认情况下，只有首要网站包含一个唯一的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ACL&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;，并对权限级别的分配进行了定义，规定用户需要获得哪种权限才能访问对象。所有子对象的权限都继承自首要网站。但是，您可以为安全对象提供一套属于它自己的唯一权限级别分配，从而更加精细地配置访问控制。例如，使用&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;图&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; 5&lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;所示的代码，您可以创建一个新文档库，并使用一组唯一的权限对其进行配置。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="ctl00_mainContentContainer_cpe195301_i" style="visibility: visible; width: 0.75pt; height: 0.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1046"&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&amp;nbsp;Figure&amp;nbsp;5&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;配置一组唯一的权限&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl31');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_53" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1047" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl31');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPWeb site = SPContext.Current.Web;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;Guid listID = site.Lists.Add("Proposals", &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;"Library desc", &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SPListTemplateType.DocumentLibrary);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPDocumentLibrary doclib = (SPDocumentLibrary)site.Lists[ListID];&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;doclib.OnQuickLaunch = true;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;doclib.BreakRoleInheritance(false);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPUser AllFteGroup = Web.SiteUsers[@"LITWAREINC\AllFTE"];&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPRoleAssignment assignAllFteGroup = new SPRoleAssignment(AllFteGroup);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPRoleDefinition roleDesign = this.Web.RoleDefinitions["Read"];&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;assignAllFteGroup.RoleDefinitionBindings.Add(roleDesign);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;doclib.RoleAssignments.Add(assignAllFteGroup);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;doclib.Update();&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;此示例代码通过调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; BreakRoleInheritance &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;取消了默认的对父对象的权限继承关系。如果您调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; BreakRoleInheritance &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;并传送一个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; true &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的参数值，安全对象最初会被配置一个与父对象&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ACL &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;相同的副本&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ACL&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;。如果调用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; BreakRoleInheritance &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;并传送一个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; false &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的参数值，则安全对象最初会被配置一个空的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ACL&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;。也就是说，此文档库对于既不是所有者也不是网站管理员的用户不提供访问权限。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;Windows SharePoint Services 3.0 &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;新增了一项很受欢迎的安全增强功能，让您可以将权限的配置具体到项目级别或文档级别。您可以通过&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象模型实现这一点，因为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPListItem &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象也实现了&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; ISecurableObject &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;接口。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;strong&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;图&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; 6&lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;中的代码在文档库中创建了一个新文档，然后使用了一组与其父文档库不同的唯一权限进行配置。请注意，这段代码使用了名为&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WriteDocument &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的工具方法，可接受&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPDocumentLibrary &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;引用和文件名。该方法的实现使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Office Open XML &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;文件格式创建&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; Word &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;文档，然后将其写回到文档库。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WriteDocument &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;方法返回一个&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPFile &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;引用，该引用随后可用于访问与文档相关的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPListItem&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;，这样您就可以取消继承关系并分配一组唯一的权限。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="ctl00_mainContentContainer_cpe195302_i" style="visibility: visible; width: 0.75pt; height: 0.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1048"&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&amp;nbsp;Figure&amp;nbsp;6&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;设置与其父对象不同的权限&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.cnblogs.com/fireball/admin/javascript:CopyCode('ctl00_mainContentContainer_ctl35');" target="_blank"&gt;&lt;span style="color: windowtext"&gt;&lt;span style="font-size: 9pt; color: #0033cc; font-family: 'Verdana','sans-serif'"&gt;&lt;V:SHAPE id="图片_x0020_55" style="visibility: visible; width: 6.75pt; height: 6.75pt" coordsize="21600,21600" alt="http://i.msdn.microsoft.com/Global/Images/clear.gif" type="#_x0000_t75" o:spid="_x0000_i1049" o:button="t" href="javascript:CopyCode('ctl00_mainContentContainer_ctl35');"&gt;&lt;V:FILL o:detectmouseclick="t"&gt;&lt;/V:FILL&gt;&lt;V:IMAGEDATA src="file5851.files/image001.png" o:title="clear"&gt;&lt;/V:IMAGEDATA&gt;&lt;/V:SHAPE&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 宋体"&gt;&lt;span lang="EN-US"&gt;复制代码&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPWeb site = SPContext.Current.Web;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;Guid listID = site.Lists.Add("Proposals",&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"Library desc",&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SPListTemplateType.DocumentLibrary);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPDocumentLibrary doclib = (SPDocumentLibrary)Web.Lists[ListID];&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;doclib.OnQuickLaunch = true;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;doclib.Update();&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPFile doc1 = WriteDocument(doclib, "Adventure Works Merger.docx");&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;doc1.Item.BreakRoleInheritance(false);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPGroup group = Web.Groups["Litware Contact Managers"];&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPRoleAssignment assignContribute = new SPRoleAssignment(group);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;SPRoleDefinition roleContibute = this.Web.RoleDefinitions["Contribute"];&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;assignContribute.RoleDefinitionBindings.Add(roleContibute);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;doc1.Item.RoleAssignments.Add(assignContribute);&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;doc1.Item.Update();&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 12pt; font-family: 宋体"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;strong&gt;&lt;span style="color: teal; font-family: 宋体"&gt;结束语&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: teal; font-family: 'Segoe UI','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;我知道今天的讨论稍微有些仓促，只是让您对&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;的安全模型有一个大致的了解。我主要向您介绍了&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;如何使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8220;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户信息列表&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&amp;#8221;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;中的配置文件在网站集这一层上对外部安全主体进行跟踪，以及&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;如何使用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPUser &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象在&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象模型中表示这些外部安全主体。此外我还演示了&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;如何支持&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组，并介绍了一些用于提升特权和模拟&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;用户的编程技巧。在开发用于实际工作的应用程序时，这些技巧能够为您提供所需的灵活性和强大功能。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="line-height: 12pt; text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;尽管&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;需要依靠基础组件系统来执行身份验证，但它确实能够在授权和访问控制方面发挥应有的作用。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;授权模型很大程度上基于一种被称为权限级别或角色的权限命名集。权限级别可以被分配给&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; SPUser &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;对象，但在实际应用中您通常应该选择将权限级别分配给&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt; WSS &lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体"&gt;组。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;请将您想向&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; Ted &lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;询问的问题和提出的意见发送至&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt; mmoffice@microsoft.com&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 宋体"&gt;。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#109;&amp;#109;&amp;#111;&amp;#102;&amp;#102;&amp;#105;&amp;#99;&amp;#101;&amp;#64;&amp;#109;&amp;#105;&amp;#99;&amp;#114;&amp;#111;&amp;#115;&amp;#111;&amp;#102;&amp;#116;&amp;#46;&amp;#99;&amp;#111;&amp;#109;" target="_blank"&gt;&lt;span style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;mmoffice@microsoft.com&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;. &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; font-family: 'Verdana','sans-serif'"&gt;&lt;O:P&gt;&amp;nbsp;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="text-align: left" align="left"&gt;&lt;strong&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;Ted Pattison&lt;/span&gt;&lt;/strong&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt; &lt;/span&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;是一名作家、培训师兼&lt;/span&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt; SharePoint &lt;/span&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;领域的&lt;/span&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt; MVP&lt;/span&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;，现居住在美国佛罗里达州的坦帕市。他还自己开办了公司&lt;/span&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt; Ted Pattison Group (&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.tedpattison.net/" target="_blank"&gt;&lt;span style="font-family: 'Segoe UI','sans-serif'"&gt;www.TedPattison.net&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;)&lt;/span&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;，为专业开发人员提供&lt;/span&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt; SharePoint &lt;/span&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;高级培训。&lt;/span&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;Ted &lt;/span&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;刚刚完成了《&lt;/span&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt;Inside Windows SharePoint Services 3.0&lt;/span&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;》一书，该书由&lt;/span&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt; Microsoft Press &lt;/span&gt;&lt;span style="color: #003399; font-family: 宋体"&gt;出版。&lt;/span&gt;&lt;span lang="EN-US" style="color: #003399; font-family: 'Segoe UI','sans-serif'"&gt; &lt;O:P&gt;&lt;/O:P&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td style="padding-right: 0cm; padding-left: 0cm; padding-bottom: 0cm; width: 5.4pt; padding-top: 0cm" valign="top" width="7"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://www.cnblogs.com/fireball/aggbug/1758933.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fireball/archive/2010/06/16/1758933.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fireball/archive/2010/06/16/1758931.html</id><title type="text">sharepoint2010的控制台程序，找不到位于&amp;lt;url&amp;gt;的应用程序</title><summary type="text">当我在sharepoint2010下测试代码时，using (SPSite site = new SPSite("http://..."))时，出现错误提示： 找不到位于&amp;lt;url&amp;gt;的应用程序。 将开发环境的编译目标平台设置下就好了。</summary><published>2010-06-16T03:03:00Z</published><updated>2010-06-16T03:03:00Z</updated><author><name>风渐寒pro</name><uri>http://www.cnblogs.com/fireball/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fireball/archive/2010/06/16/1758931.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fireball/archive/2010/06/16/1758931.html"/><content type="html">&lt;p&gt;当我在sharepoint2010下测试代码时，using (SPSite site = new SPSite("http://..."))时，出现错误提示：&lt;/p&gt;&#xD;
&lt;p&gt;找不到位于&amp;lt;url&amp;gt;的应用程序。&lt;/p&gt;&#xD;
&lt;p&gt;将开发环境的编译目标平台设置下就好了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img height="263" alt="" src="http://images.cnblogs.com/cnblogs_com/fireball/20101.GIF" width="661" border="0" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fireball/aggbug/1758931.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fireball/archive/2010/06/16/1758931.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fireball/archive/2010/05/21/1740702.html</id><title type="text">Customizing the Rendering of a Custom SPField (copy from todd's blog)</title><summary type="text">http://blogs.msdn.com/toddca/archive/2009/01/23/customizing-the-rendering-of-a-custom-spfield.aspxI was recently asked by a customer how to use a PropertySchema field value within a RenderPatten's CAM...</summary><published>2010-05-21T02:54:00Z</published><updated>2010-05-21T02:54:00Z</updated><author><name>风渐寒pro</name><uri>http://www.cnblogs.com/fireball/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fireball/archive/2010/05/21/1740702.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fireball/archive/2010/05/21/1740702.html"/><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/toddca/archive/2009/01/23/customizing-the-rendering-of-a-custom-spfield.aspx" target="_blank"&gt;http://blogs.msdn.com/toddca/archive/2009/01/23/customizing-the-rendering-of-a-custom-spfield.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;I was recently asked by a customer how to use a PropertySchema field value within a RenderPatten's CAML to control how a field is rendered. The idea is to create a new instance of the field and have some method to control how that field will be rendered at the time the column is instantiated. Unfortunately field values from the PropertySchema are not available via a &amp;lt;Property Select='myValue'/&amp;gt; within a ReanderPattern's CAML and nor is it possible to call a custom getter off the SPField derived class of your custom SPField. In most cases when a field is rendered it is done so within native (non-managed) code so the getter on your .net assembly will not get called. The field schema stored in the DB is what gets read to help generate the rendered output. Fortunately this schema can be accessed by SPFIeld.SchemaXml. Adding properties or attributes to the root element of this XML will allow the RenderPattern CAML access. &lt;/p&gt;&#xD;
&lt;p&gt;So let's take a look at a sample. For my scenario I want URL field however I want to control how that field is rendered. By default a URL field just renders the URL without wrapping that URL in an &amp;lt;a&amp;gt; tag. In our example we want to create a true hyperlink so we are going to generate a RenderingPattern which will wrap an &amp;lt;a&amp;gt; tag around the field value. In addition we want the creator of the field to choose what happens when that link is selected by the user. That is, will the navigation happen within the same window or will the browser open the URL in a new window. I call these options "Self" and "New" respectively. &lt;/p&gt;&#xD;
&lt;p&gt;Now that we have our scenario let's take a look at what it will take to wire up the new field. First I need to define our field via fldTypes XML. &lt;strong&gt;Code 1&lt;/strong&gt; shows what this looks like. As you can see the Parent is "URL" because we want to use the same storage and rendering of the built-in URL however we are going to tweak it a bit. The FieldTypeClass will be outlined in &lt;strong&gt;Code 2&lt;/strong&gt;. The PropertySchema field is used to collect the user's intent on how the URL will behave within the client's browser and finally we have RenderingPattern CAML which will control how the field will be rendered within the browser. Note I have a FieldSwitch on a Property called 'HowOpenUrl', this value will not be chosen from the PropertySchema's HowOpenUrl directly however once you take a look at Code 2 you will see how this is done. The reminder of the RenderPattern uses the FieldSwitch to determine how to render the URL. The default rendering is an &amp;lt;a&amp;gt; tag with the target set to _self so the URL will be navigated to within the same window. &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Code 1 &amp;#8211; fldtypes_sample.xml &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;table  style="border-collapse: collapse" border="0"&gt;&#xD;
&lt;colgroup&gt;&#xD;
&lt;col style="width: 1141px"&gt;&lt;/colgroup&gt;&#xD;
&lt;tbody valign="top"&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td  style="border-right: black 0.5pt solid; padding-right: 7px; border-top: black 0.5pt solid; padding-left: 7px; border-left: black 0.5pt solid; border-bottom: black 0.5pt solid"&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #a31515"&gt;xml&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;version&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;1.0&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;encoding&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;utf-8&lt;/span&gt;"&lt;span style="color: blue"&gt; ?&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;FieldTypes&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;FieldType&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;TypeName&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;ConfigurableURL&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ParentType&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;URL&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;TypeDisplayName&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Configurable URL&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;TypeShortDescription&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Configurable URL&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;UserCreatable&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;TRUE&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ShowInListCreate&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;TRUE&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ShowInSurveyCreate&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;TRUE&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ShowInDocumentLibraryCreate&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;TRUE&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ShowInColumnTemplateCreate&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;TRUE&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;FieldTypeClass&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;SampleConfigurableField.ConfigurableUrlField, SampleConfigurableField, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3de2414d286dff3d&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;PropertySchema&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Fields&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;HowOpenUrl&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;DisplayName&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Choose how to open the URL ('Self' = within same window, 'New' = New Window&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Type&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Text&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Default&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Self&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Default&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Field&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Fields&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;PropertySchema&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;RenderPattern&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;DisplayPattern&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;FieldSwitch&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Expr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Select&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;'&lt;span style="color: blue"&gt;HowOpenUrl&lt;/span&gt;'&lt;span style="color: blue"&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Expr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; color: blue; font-family: Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Case&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Self&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;HTML&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;![CDATA[&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;a target="_self" href="&lt;/span&gt;&lt;span style="color: blue"&gt;]]&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;HTML&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Column&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;HTMLEncode&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;TRUE&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;HTML&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;![CDATA[&lt;/span&gt;&lt;span style="color: gray"&gt;"&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;]]&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;HTML&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Column&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;HTMLEncode&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;TRUE&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;HTML&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;![CDATA[&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;]]&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;HTML&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Case&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Case&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;New&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;HTML&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;![CDATA[&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;a target="_blank" href="&lt;/span&gt;&lt;span style="color: blue"&gt;]]&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;HTML&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Column&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;HTMLEncode&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;TRUE&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;HTML&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;![CDATA[&lt;/span&gt;&lt;span style="color: gray"&gt;"&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;]]&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;HTML&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Column&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;HTMLEncode&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;TRUE&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;HTML&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;![CDATA[&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;]]&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;HTML&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Case&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Default&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Column&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;HTMLEncode&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;TRUE&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Default&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;FieldSwitch&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;RenderPattern&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;FieldType&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;FieldTypes&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&#xD;
&lt;p&gt;After creating a Class Library project and adding the proper reference to Microsoft.SharePoint I added the following code to define my ConfigurableUrlField. This field derives from the SPFieldURL class which is important because we defined in Code 1 that our ParentType is "URL". Like all custom fields we need to create the two proper constructors which not only allow our type to be constructed but properly instantiates the base type. Next we need to override the OnAdded() and OnUpdated() methods which each get called whenever this field definition is added to a new site column or when the site column definition is updated, for example when someone wants to change from a rendering of this field from "Self" to "New". The magic all happens in ConfigureSchemaXml(), this is where we access the base.SchemaXml and update it with our custom property's value as configured by the user. This is the only chance we get to manipulate the schema before being stored in the DB and used to render the field. Note the name of the attribute being added/updated needs to match the name being used within the FieldSwitch: &lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Select&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;'&lt;span style="color: blue"&gt;HowOpenUrl&lt;/span&gt;'&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Code 2 &amp;#8211; ConfigurableUrlField.cs &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;table  style="border-collapse: collapse" border="0"&gt;&#xD;
&lt;colgroup&gt;&#xD;
&lt;col style="width: 1141px"&gt;&lt;/colgroup&gt;&#xD;
&lt;tbody valign="top"&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td  style="border-right: black 0.5pt solid; padding-right: 7px; border-top: black 0.5pt solid; padding-left: 7px; border-left: black 0.5pt solid; border-bottom: black 0.5pt solid"&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;namespace&lt;/span&gt; SampleConfigurableField &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;{ &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; Microsoft.SharePoint; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; Microsoft.SharePoint.WebControls; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System.Xml; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;ConfigurableUrlField&lt;/span&gt; : &lt;span style="color: #2b91af"&gt;SPFieldUrl &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;{ &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;bool&lt;/span&gt; _updating = &lt;span style="color: blue"&gt;false&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; ConfigurableUrlField(&lt;span style="color: #2b91af"&gt;SPFieldCollection&lt;/span&gt; fields, &lt;span style="color: blue"&gt;string&lt;/span&gt; fieldName) &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;: &lt;span style="color: blue"&gt;base&lt;/span&gt;(fields, fieldName) { } &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; ConfigurableUrlField(&lt;span style="color: #2b91af"&gt;SPFieldCollection&lt;/span&gt; fields, &lt;span style="color: blue"&gt;string&lt;/span&gt; typeName, &lt;span style="color: blue"&gt;string&lt;/span&gt; displayName) &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;: &lt;span style="color: blue"&gt;base&lt;/span&gt;(fields, typeName, displayName) { } &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;override&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; OnUpdated() &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;{ &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: green"&gt;//ConfigureSchemaXml() will cause the OnUpdated event to be raised, &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: green"&gt;//to keep out of a stack overflow condition we bail early when updating &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (_updating) &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;return&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;_updating = &lt;span style="color: blue"&gt;true&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;{ &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;base&lt;/span&gt;.OnUpdated(); &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;ConfigureSchemaXml(); &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;} &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;_updating = &lt;span style="color: blue"&gt;false&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;} &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;override&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; OnAdded(&lt;span style="color: #2b91af"&gt;SPAddFieldOptions&lt;/span&gt; op) &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;{ &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;base&lt;/span&gt;.OnAdded(op); &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;ConfigureSchemaXml(); &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;} &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;void&lt;/span&gt; ConfigureSchemaXml() &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;{ &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt; howOpenUrl = (&lt;span style="color: blue"&gt;string&lt;/span&gt;)&lt;span style="color: blue"&gt;base&lt;/span&gt;.GetCustomProperty(&lt;span style="color: #a31515"&gt;"HowOpenUrl"&lt;/span&gt;); &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;howOpenUrl = AreStringsEqual(&lt;span style="color: #a31515"&gt;"New"&lt;/span&gt;, howOpenUrl) ? &lt;span style="color: #a31515"&gt;"New"&lt;/span&gt; : &lt;span style="color: #a31515"&gt;"Self"&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: #2b91af"&gt;XmlDocument&lt;/span&gt; doc = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;XmlDocument&lt;/span&gt;(); &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;doc.LoadXml(&lt;span style="color: blue"&gt;base&lt;/span&gt;.SchemaXml); &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (doc.FirstChild.Attributes[&lt;span style="color: #a31515"&gt;"HowOpenUrl"&lt;/span&gt;] == &lt;span style="color: blue"&gt;null&lt;/span&gt;) &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;{ &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: #2b91af"&gt;XmlAttribute&lt;/span&gt; attrib = doc.CreateAttribute(&lt;span style="color: #a31515"&gt;"HowOpenUrl"&lt;/span&gt;); &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;attrib.Value = howOpenUrl; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;doc.FirstChild.Attributes.Append(attrib); &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;} &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;else &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;{ &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;doc.FirstChild.Attributes[&lt;span style="color: #a31515"&gt;"HowOpenUrl"&lt;/span&gt;].Value = howOpenUrl; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;} &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;base&lt;/span&gt;.SchemaXml = doc.OuterXml; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;} &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: blue"&gt;bool&lt;/span&gt; AreStringsEqual(&lt;span style="color: blue"&gt;string&lt;/span&gt; s1, &lt;span style="color: blue"&gt;string&lt;/span&gt; s2) &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;{ &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;return&lt;/span&gt; (&lt;span style="color: #2b91af"&gt;String&lt;/span&gt;.Compare(s1, s2, &lt;span style="color: blue"&gt;true&lt;/span&gt;) == 0); &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;} &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;override&lt;/span&gt; &lt;span style="color: #2b91af"&gt;BaseFieldControl&lt;/span&gt; FieldRenderingControl &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;{ &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;get &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;{ &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: #2b91af"&gt;BaseFieldControl&lt;/span&gt; fldControl = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;UrlField&lt;/span&gt;(); &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;fldControl.FieldName = InternalName; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;return&lt;/span&gt; fldControl; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;} &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;} &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;} &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&#xD;
&lt;p&gt;For completeness I have included the manifest.xml used for deployment of the solution. I will not go over that here since the concept is covered in so many other places. &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Code 3 &amp;#8211; manifest.xml &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;table  style="border-collapse: collapse" border="0"&gt;&#xD;
&lt;colgroup&gt;&#xD;
&lt;col style="width: 1141px"&gt;&lt;/colgroup&gt;&#xD;
&lt;tbody valign="top"&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td  style="border-right: black 0.5pt solid; padding-right: 7px; border-top: black 0.5pt solid; padding-left: 7px; border-left: black 0.5pt solid; border-bottom: black 0.5pt solid"&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #a31515"&gt;xml&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;version&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;1.0&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;encoding&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;utf-8&lt;/span&gt;"&lt;span style="color: blue"&gt; ?&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Solution&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;" &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&lt;span style="color: red"&gt;SolutionId&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;733641DA-95D9-446E-812E-6070947171B2&lt;/span&gt;" &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&lt;span style="color: red"&gt;DeploymentServerType&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;WebFrontEnd&lt;/span&gt;" &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&lt;span style="color: red"&gt;ResetWebServer&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;TRUE&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Assemblies&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Assembly&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;DeploymentTarget&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;GlobalAssemblyCache&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Location&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;SampleConfigurableField.dll&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;SafeControls&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;SafeControl&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;SampleConfigurableField&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;TypeName&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;*&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Safe&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;True&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;SafeControls&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Assembly&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Assemblies&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TemplateFiles&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TemplateFile&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;Location&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;XML\fldtypes_Sample.xml&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TemplateFiles&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Courier New"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Solution&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&#xD;
&lt;p&gt;Once we have our solution added and deployed within our farm it is time to use the field. I created a test list and added a new column based on the Configurable URL field I just deployed. Note the open to set how the URL will open within the browser. &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img style="width: 672px; height: 443px" height="345" src="http://blogs.msdn.com/photos/toddca/images/9373123/500x316.aspx" width="531" mce_src="http://blogs.msdn.com/photos/toddca/images/9373123/500x316.aspx"  alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Now back at my list I create a new list item &amp;#8211; note that we did not create a custom field control but rather are using the SPFieldUrl's field control for editing of this field. &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://blogs.msdn.com/photos/toddca/images/9373150/500x146.aspx" mce_src="http://blogs.msdn.com/photos/toddca/images/9373150/500x146.aspx"  alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Finally we can see the URL in action. Obviously an image does not do it justice but if I look at the HTML source I can find what actually got rendered: &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&amp;lt;a target="_self" href="http://www.msn.com" href="http://www.msn.com"&amp;gt;http://www.msn.com&amp;lt;/a&amp;gt; &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://blogs.msdn.com/photos/toddca/images/9373131/500x119.aspx" mce_src="http://blogs.msdn.com/photos/toddca/images/9373131/500x119.aspx"  alt="" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fireball/aggbug/1740702.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fireball/archive/2010/05/21/1740702.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
