From b3a151cca072d08c62c1a78ae4d1f300f1721f26 Mon Sep 17 00:00:00 2001 From: nils Date: Wed, 25 Nov 2015 14:55:53 -0500 Subject: [PATCH] (*) Updated support for anonymous access. --- .../Layouts/SPGenericListRSS/rss.aspx.cs | 40 ++++++++++-------- bin/SPGenericListRSS.wsp | Bin 7073 -> 7158 bytes 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/SPGenericListRSS/SPGenericListRSS/Layouts/SPGenericListRSS/rss.aspx.cs b/SPGenericListRSS/SPGenericListRSS/Layouts/SPGenericListRSS/rss.aspx.cs index 62fe111..02e1863 100644 --- a/SPGenericListRSS/SPGenericListRSS/Layouts/SPGenericListRSS/rss.aspx.cs +++ b/SPGenericListRSS/SPGenericListRSS/Layouts/SPGenericListRSS/rss.aspx.cs @@ -70,26 +70,32 @@ protected void Page_Load(object sender, EventArgs e) try { // Get previous page title and URL - SPSecurity.RunWithElevatedPrivileges(delegate() + SPSecurity.RunWithElevatedPrivileges(delegate { - var idStr = HttpContext.Current.Request.QueryString["List"]; - var idViewStr = HttpContext.Current.Request.QueryString["View"]; - var fieldTitle = HttpContext.Current.Request.QueryString["T"]; - var fieldAuthor = HttpContext.Current.Request.QueryString["A"]; - var fieldDate = HttpContext.Current.Request.QueryString["D"]; - var fieldBody = HttpContext.Current.Request.QueryString["B"]; - var RelURL = HttpContext.Current.Request.QueryString["U"]; - var web = SPContext.Current.Web; - var feed = new RssFeedDto(); - if (PopulateFromList(feed, web, idStr, idViewStr, fieldTitle, fieldAuthor, fieldDate, fieldBody, RelURL)) + using (SPSite site = new SPSite(SPContext.Current.Web.Url)) { - BindData(feed); - Response.AppendHeader("ETag", feed.ETag); - Response.AppendHeader("Last-Modified", feed.LastBuildDate.ToString()); - Response.ContentType = "text/xml"; - Response.ContentEncoding = Encoding.UTF8; + using (SPWeb web = site.OpenWeb()) + { + var idStr = HttpContext.Current.Request.QueryString["List"]; + var idViewStr = HttpContext.Current.Request.QueryString["View"]; + var fieldTitle = HttpContext.Current.Request.QueryString["T"]; + var fieldAuthor = HttpContext.Current.Request.QueryString["A"]; + var fieldDate = HttpContext.Current.Request.QueryString["D"]; + var fieldBody = HttpContext.Current.Request.QueryString["B"]; + var relUrl = HttpContext.Current.Request.QueryString["U"]; + var feed = new RssFeedDto(); + if (PopulateFromList(feed, web, idStr, idViewStr, fieldTitle, fieldAuthor, fieldDate, + fieldBody, + relUrl)) + { + BindData(feed); + Response.AppendHeader("ETag", feed.ETag); + Response.AppendHeader("Last-Modified", feed.LastBuildDate.ToString()); + Response.ContentType = "text/xml"; + Response.ContentEncoding = Encoding.UTF8; + } + } } - }); } catch (Exception ex) diff --git a/bin/SPGenericListRSS.wsp b/bin/SPGenericListRSS.wsp index 28db4017e8601dd77730ea65cb69752df6490860..8fa8707c9819928f5402f8c54ba29bbd7d3b779a 100644 GIT binary patch delta 7116 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 CyYU|Y delta 7030 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 U=LV