Using System; Using System. componentmodel; Using System. Web. UI. webcontrols. webparts; Using Microsoft. SharePoint; Namespace ZY. visualwebpart1 {[toolboxitemattribute ( False )] Public Partial Class Visualwebpart1: webpart {system. Web. httpresponse response = Null ; // Uncomment the following securitypermission attribute only when doing performance profiling on a farm Solution // Using the instrumentation method, and then remove the securitypermission attribute when the code is ready // For production. Because the securitypermission attribute bypasses the security check for callers // Your constructor, It's not recommended for production purposes. // [System. Security. permissions. securitypermission (system. Security. permissions. securityaction. assert, unmanagedcode = true)] Public Visualwebpart1 () {response = System. Web. httpcontext. Current. response ;} Protected Override Void Oninit (eventargs e ){ Base . Oninit (E); initializecontrol ();} Protected Void Page_load ( Object Sender, eventargs e) {system. Text. stringbuilder sb = New System. Text. stringbuilder (); If (! Spcontext. Current. Site. rootweb. currentuser. issiteadmin ){ // Response. Write ("permission deny! "); SB. appendline (" Permission deny! " ); Label1.text = SB. tostring (); Return ;} Spsecurity. catchaccessdeniedexception = False ; Spweb = Spcontext. Current. Site. rootweb; spuser currentuser = Web. currentuser; sb. appendline ( " <B> currentuser: " + Currentuser. Name + " </B> <br/> ============================ begin ==========< br/> " ); Microsoft. Sharepoint. spsecurity. runwithelevatedprivileges ( Delegate () {System. Collections. Generic. List <Spdocumentlibrary> documentlist = New System. Collections. Generic. List <spdocumentlibrary> (); Using (Spsite Site1 = New Spsite ( " Https://www.abc.net.cn: 8899/ " ) {Splistcollection colllists = Site1.rootweb. lists; Foreach (Splist olist In Colllists ){ If (Olist. basetype =Spbasetype. documentlibrary) {spdocumentlibrary odocumentlibrary = (Spdocumentlibrary) olist; // VaR permissions = odocumentlibrary. permissions. getenumerator (); VaR Roles = Odocumentlibrary. allrolesforcurrentuser; spuser user = Web. currentuser; // Spmember member = web. allusers [userprefix + "SK \ ZY"]; If (! Odocumentlibrary. iscatalog & olist. basetemplate! = Splisttemplatetype. xmlform) {documentlist. Add (odocumentlibrary ); /* Splistitemcollection colllistitems = odocumentlibrary. items; response. write ("<B> document library name:" + odocumentlibrary. title + "</B> <br>"); sproledefinitionbindingcollection roles0 = odocumentlibrary. allrolesforcurrentuser; response. write ("documentlibrary. allrolesforcurrentuser. count: "+ roles0.count +" <br> "); foreach (sproledefinition role in roles0) {response. write ("++" + role. name + "<br>");} response. write ("------------------- <br/>"); response. write ("sproleassignment. member. name: <br/> "); try {sproleassignmentcollection roleassigments = odocumentlibrary. roleassignments; foreach (sproleassignment item in roleassigments) {response. write (item. member. name + "<br>") ;}} catch (exception ex) {response. write (ex. getType (). tostring ();} response. write (currentuser. name + "<br/>====================< br/> ");*/ }}} Sb. appendline ( "Permission list for all users :" ); Spusercollection users = Web. allusers; Foreach (Spuser u In Users) {sb. appendline ( " <Br/> " + U. Name + " <Br/> " ); Foreach (Spgroup item In U. Groups) {sb. appendline ( " ++ " + Item. Name); sb. appendline ( " <Br/> " );} // U. usertoken // Documentlist [0]. items [0]. title; Using (Spsite site = New Spsite ( " Https://www.abc.net.cn: 8899/ " , U. usertoken )){ Foreach (Spdocumentlibrary doclib In Documentlist) {sb. appendline (doclib. Title ); Try { // VaR o = site. rootweb. Lists [doclib. ID]. getview (site. rootweb. Lists [doclib. ID]. defaultview. ID ); If (Site. rootweb. Lists [doclib. ID]. doesuserhavepermissions (spbasepermissions. viewformpages | Spbasepermissions. viewlistitems |Spbasepermissions. Open | Spbasepermissions. viewpages )){ // Response. write ("<font color = 'green'>" + site. rootweb. lists [doclib. id]. items. count. tostring () + "</font> "); SB. appendline ( " <Font color = 'green'> Read </font> " );} Else {Sb. appendline ( " <Font color = 'Blue '> deny </font> " );} If (Site. rootweb. Lists [doclib. ID]. doesuserhavepermissions (spbasepermissions. viewpages | Spbasepermissions. Open | Spbasepermissions. addlistitems |Spbasepermissions. editlistitems | Spbasepermissions. viewlistitems | Spbasepermissions. openitems | Spbasepermissions. viewversions | Spbasepermissions. createalerts | Spbasepermissions. viewformpages |Spbasepermissions. useclientintegration | Spbasepermissions. managepersonalviews | Spbasepermissions. managepersonalviews | Spbasepermissions. updatepersonalwebparts | Spbasepermissions. viewpages )){ // Response. write ("<font color = 'green'>" + site. rootweb. lists [doclib. id]. items. count. tostring () + "</font> "); SB. appendline ( " <Font color = 'green'> contribute </font> " );} Else {Sb. appendline ( " <Font color = 'Blue '> contribute deny </font> " );}} Catch (Exception ex ){ // Response. Write ("<font color = 'red'>" + ex. Message + "</font> "); SB. appendline ( " <Font color = 'red'> deny </font> " );} Sb. appendline ( " <Br/> " ) ;}} Sb. appendline ( " ============================== End ========================= <br/> " ); // The groups that the user has management privilege /* Response. write ("<br/>"); response. write ("<B> spuser. ownedgroups </B> "); response. write ("<br/>"); spgroupcollection groups_u = currentuser. ownedgroups; foreach (spgroup item in groups_u) {response. write (item. name); response. write ("<br/>");} response. write ("============================================ ==< br/> "); */ /* Response. write ("<br/>"); response. write ("<B> spgroupcollection. groups </B> "); response. write ("<br/>"); spgroupcollection u_groups = currentuser. groups; foreach (spgroup item in u_groups) {response. write (item. name); response. write ("<br/>");} response. write ("============================================ ==< br/> "); */ }); Label1.text = SB. tostring (); // Response. End (); } // End of pageload }}