成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

SQL Server Reporting Services 匿名登錄的問題及解決方案

瀏覽:8日期:2023-03-06 14:25:37

每次訪問報表都需要windows驗證,這樣的報表給客戶確實很說不過去.

SSRS 可以匿名登錄的設定步驟:

環境:

  開發工具:SQL Server Business Intelligence Development Studio

  數據庫: SQL2008

首先確定你的Reporting Services 目錄位置

默認為:C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer

打開目錄會修改該目錄下的3個配置文件,分別為:rsreportserver.config ,rssrvpolicy.config ,web.config

解決步驟:

  1.打開rsreportserver.config

   修改Configuration/Authentication/AuthenticationTypes

   修改前:

<Authentication>    <AuthenticationTypes><RSWindowsNTLM/>    </AuthenticationTypes>    </Authentication>

修改后:

<Authentication>    <AuthenticationTypes><Custom/>    </AuthenticationTypes>    </Authentication>

2. 修改web.config

<!--節點:configuration/system.web/authentication --><!-- 修改前 --><authentication mode="Windows" /><identity impersonate="true" /><!-- 修改后 --><authentication mode="None" /><identity impersonate="false" />

3. 從微軟下載匿名登錄的范例項目
( 下載網址 http://blog.quasarinc.com/wp-content/uploads/2012/03/Microsoft.Samples.ReportingServices.AnonymousSecurity.zip),
并且重新編譯出一個新的 Microsoft.Samples.ReportingServices.AnonymousSecurity.dll 動態庫,
范例為2010解決方案,其實里面用到的只是class1.cs文件,還有項目名稱不能變,和我們下面配置有直接關系.

打開解決方案 將 Microsoft.ReportingServices.Interfaces.dll 的引用移除,并添加本地服務器的這個文件,位置在 ..\Reporting Services\ReportServer\bin 下, (注意別把這個dll當成萬能的)

重新編譯會生成 :Microsoft.Samples.ReportingServices.AnonymousSecurity.dll 將該文件放置bin目錄下

4.再次修改rsreportserver.config

<!--修改節點:Configuration/Extensions/Security/Extension --><!-- 修改前 --><Security>    <Extension Name="Windows" Type="Microsoft.ReportingServices.Authorization.WindowsAuthorization, Microsoft.ReportingServices.Authorization" /></Security><Authentication>    <Extension Name="Windows" Type="Microsoft.ReportingServices.Authentication.WindowsAuthentication, Microsoft.ReportingServices.Authorization" /></Authentication><!-- 修改后 --><Security>  <Extension Name="None" Type="Microsoft.Samples.ReportingServices.AnonymousSecurity.Authorization, Microsoft.Samples.ReportingServices.AnonymousSecurity" /></Security><Authentication>  <Extension Name="None" Type="Microsoft.Samples.ReportingServices.AnonymousSecurity.AuthenticationExtension, Microsoft.Samples.ReportingServices.AnonymousSecurity" /></Authentication>

5. 在 rssrvpolicy.config 內新增一個節點

<!-- 要增加的節點 configuration/mscorlib/security/PolicyLevel 之下 --><CodeGroupversion="1"PermissionSetName="FullTrust"Name="Private_assembly"Description="This code group grants custom code full trust. ">  <IMembershipCondition   version="1"  Url="C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.AnonymousSecurity.dll"  /></CodeGroup>

注意:這個Url,路徑是reporting services 目錄下新編譯的文件,不同數據庫版本,或安裝目錄不同,會有差異

6. 重新啟動 Reporting Services

完美解決,歷時半個月,這個問題終于告以段落,以后可以專心設計報表了.

以上解決方案參考于msdn上的一篇文章,做了些整理.

由于是程序員,所有手工做的事還是交給程序做,以上5個步驟,已使用程序實現:

起個名字叫:ssrs_onekey_nologin 全稱:sql server report serveics 一鍵匿名登錄配置.

主要功能,修改xml ,自己生成dll,copy至 bin目錄下.

使用說明:需錄入report services 目錄

代碼共享:

 class Program       {   static void Main(string[] args)   {       Console.WriteLine("請輸入Reporting Services目錄:為空則與c盤默認sql2008");       string a = Console.ReadLine();             string basePath;      if (string.IsNullOrEmpty(a))      { basePath = @"c:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer";      }else     { basePath = a;      }      Console.WriteLine("Reporting Services 目錄為:{0}", basePath);     Console.WriteLine("確認請按任意鍵...");     Console.ReadKey();      string bakPath = @"c:\SSRS_noLogin_bak\" + DateTime.Now.ToString("yyyyMMddHHmmss");    Directory.CreateDirectory(bakPath);    File.Copy(basePath + "\\rsreportserver.config", bakPath + "\\rsreportserver.config");    File.Copy(basePath + "\\web.config", bakPath + "\\web.config");     File.Copy(basePath + "\\rssrvpolicy.config", bakPath + "\\rssrvpolicy.config");       Console.WriteLine("第1步開始:");    Step1(basePath);    Console.WriteLine("第1步結束.");    Console.WriteLine("第2步開始:");    Step2(basePath);    Console.WriteLine("第2步結束.");     Console.WriteLine("第3步開始:");     Step3(basePath);    Console.WriteLine("第3步結束.");    Console.WriteLine("第4步開始:");     Step4(basePath);     Console.WriteLine("第4步結束.");     Console.WriteLine("第5步開始:");     Step5(basePath);     Console.WriteLine("第5步結束.");      Console.WriteLine("完成");   Console.ReadKey(); }  static void Step1(string basePath) {     string file = basePath + "\\rsreportserver.config";     XmlDocument doc = new XmlDocument();     doc.Load(file);  //Configuration     XmlNode xn = doc.SelectSingleNode("Configuration/Authentication/AuthenticationTypes");     XmlNode oldXn = xn.SelectSingleNode("RSWindowsNTLM");     if (oldXn == null)     { Console.WriteLine("未找到RSWindowsNTLM,或已更改");    }    else   {XmlNode newXn = doc.CreateElement("Custom");xn.ReplaceChild(newXn, oldXn);     }      doc.Save(file);   }static void Step2(string basePath) {     XmlDocument doc = new XmlDocument();     string file = basePath + "\\web.config";     doc.Load(file);    XmlNode xn2 = doc.SelectSingleNode("configuration/system.web/authentication");     XmlElement xm2 = (XmlElement)xn2;      xm2.SetAttribute("mode", "None");     XmlNode xn3 = doc.SelectSingleNode("configuration/system.web/identity");   XmlElement xm3 = (XmlElement)xn3;    xm3.SetAttribute("impersonate", "false");    doc.Save(file);}  static void Step3(string basePath)  {    CSharpCodeProvider objCSharpCodePrivoder = new CSharpCodeProvider();     CompilerParameters objCompilerParameters = new CompilerParameters();     objCompilerParameters.ReferencedAssemblies.Add("System.dll");     objCompilerParameters.ReferencedAssemblies.Add(basePath + @"\bin\Microsoft.ReportingServices.Interfaces.dll");     string strSourceCode = Resources.Class1;     objCompilerParameters.GenerateInMemory = false;    objCompilerParameters.OutputAssembly = "Microsoft.Samples.ReportingServices.AnonymousSecurity.dll";    CompilerResults cr = objCSharpCodePrivoder.CompileAssemblyFromSource(objCompilerParameters, strSourceCode);     if (cr.Errors.HasErrors)    { string strErrorMsg = cr.Errors.Count.ToString() + " Errors:"; for (int x = 0; x < cr.Errors.Count; x++) {    strErrorMsg = strErrorMsg + "/r/nLine: " + cr.Errors[x].Line.ToString() + " - " +  cr.Errors[x].ErrorText; } Console.WriteLine(strErrorMsg); return;    }     File.Copy("Microsoft.Samples.ReportingServices.AnonymousSecurity.dll", basePath + @"\bin\Microsoft.Samples.ReportingServices.AnonymousSecurity.dll", true);     File.Delete("Microsoft.Samples.ReportingServices.AnonymousSecurity.dll"); } static void Step4(string basePath){     XmlDocument doc = new XmlDocument();     string file = basePath + "\\rsreportserver.config";    doc.Load(file);     XmlNode xn2 = doc.SelectSingleNode("Configuration/Extensions/Security/Extension");    XmlElement xm2 = (XmlElement)xn2;     xm2.SetAttribute("Name", "None");     xm2.SetAttribute("Type", "Microsoft.Samples.ReportingServices.AnonymousSecurity.Authorization, Microsoft.Samples.ReportingServices.AnonymousSecurity");    XmlNode xn3 = doc.SelectSingleNode("Configuration/Extensions/Authentication/Extension");    XmlElement xm3 = (XmlElement)xn3;    xm3.SetAttribute("Name", "None");    xm3.SetAttribute("Type", "Microsoft.Samples.ReportingServices.AnonymousSecurity.AuthenticationExtension, Microsoft.Samples.ReportingServices.AnonymousSecurity");      doc.Save(file); }  static void Step5(string basePath){    XmlDocument doc = new XmlDocument();     string file = basePath + "\\rssrvpolicy.config";     doc.Load(file);    XmlNode xn1 = doc.SelectSingleNode("configuration/mscorlib/security/PolicyLevel/CodeGroup[@class=UnionCodeGroup]");    if (xn1 != null)    {//已添加    }   else     { XmlNode xn = doc.SelectSingleNode("configuration/mscorlib/security/policy/PolicyLevel"); XmlElement xe = doc.CreateElement("CodeGroup");xe.SetAttribute("class", "UnionCodeGroup"); xe.SetAttribute("version", "1"); xe.SetAttribute("PermissionSetName", "FullTrust"); xe.SetAttribute("Name", "Private_assembly");xe.SetAttribute("Description", "This code group grants custom code full trust.");  XmlElement xe2 = doc.CreateElement("IMembershipCondition"); xe2.SetAttribute("class", "UrlMembershipCondition"); xe2.SetAttribute("version", "1");xe2.SetAttribute("Url", basePath + @"\bin\Microsoft.Samples.ReportingServices.AnonymousSecurity.dll"); xe.AppendChild(xe2);xn.AppendChild(xe);   }    doc.Save(file);}      } }ssrs onkey no login

程序共享:

解決后測試頁的展示:

到此這篇關于關于 SQL Server Reporting Services 匿名登錄的解決方案的文章就介紹到這了,更多相關SQL Server Reporting Services內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: MsSQL
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
蜜桃av噜噜一区| 欧美日韩一区二区三区不卡 | 91在线码无精品| 国产欧美一区二区三区在线老狼 | 欧美性天天影院| 日韩二区在线观看| 韩国女主播成人在线| 欧美一区二区精美| 一本色道久久综合亚洲精品婷婷| 国产一区二区不卡| 91麻豆免费视频| 国产日本精品| 亚洲色图在线视频| 日韩精品免费专区| 日韩不卡免费视频| k8久久久一区二区三区 | 一区二区在线免费观看| 91国产免费观看| 欧美一区网站| 国产a区久久久| 欧美午夜宅男影院| 久久久国产午夜精品| 日韩一区二区在线观看| 国产99久久久国产精品免费看| 日韩欧美国产麻豆| 日本韩国欧美国产| 国产精品日韩一区二区| 中文字幕中文字幕一区二区| 亚洲伊人色欲综合网| 日本亚洲最大的色成网站www| 久草在线在线精品观看| 麻豆91小视频| 一区二区三区视频在线播放| 99久久er热在这里只有精品15 | 美女免费视频一区二区| 欧美电视剧在线观看完整版| 欧美性感一区二区三区| 国产精品国产自产拍高清av| 免费人成黄页网站在线一区二区| 99re66热这里只有精品3直播 | 日韩一级完整毛片| 天堂影院一区二区| 91丨porny丨国产| 亚洲精品一区二区三| 日韩美女天天操| 韩国精品免费视频| 免费成人美女在线观看.| 亚洲精品五月天| 欧美涩涩网站| 国产不卡一区视频| 成人精品国产福利| 成人一区二区视频| 国产一区二区三区四区五区入口 | 91美女视频网站| 日本电影欧美片| 你懂的国产精品永久在线| 国产精品一区二区91| 黄网站免费久久| 丁香婷婷综合激情五月色| 精品剧情在线观看| 国产米奇在线777精品观看| 久久精品一区二区国产| 亚洲人成精品久久久久久| 不卡一区二区中文字幕| 制服视频三区第一页精品| 日韩欧美一区二区在线视频| 亚洲一区二区三区精品动漫| 日韩在线a电影| 亚洲影视在线播放| 久久99最新地址| 成人激情黄色小说| 女同一区二区| 影音国产精品| 国产一区在线观看麻豆| 日韩欧美aaaaaa| fc2成人免费人成在线观看播放 | 91麻豆自制传媒国产之光| 亚洲免费精品| 欧美伦理电影网| 日韩一区二区免费看| 婷婷一区二区三区| 久久精品视频在线看| 欧美日韩一区二区三| 国产区在线观看成人精品| 成人免费毛片片v| 欧美性大战久久久久| 黄色成人精品网站| 偷拍亚洲欧洲综合| 天堂av在线一区| 国产不卡一区视频| 99香蕉国产精品偷在线观看 | 国产日韩精品一区二区三区在线| 日韩欧美一级片| 精品欧美黑人一区二区三区| 香蕉av福利精品导航| 亚洲午夜精品17c| 777亚洲妇女| 欧美在线免费一级片| 日韩国产欧美三级| 欧美一区二区性放荡片| 欧美日韩一区二区三区免费| 午夜激情久久久| 国产精品一区二区三区乱码| 成人免费va视频| 亚洲午夜久久久久中文字幕久| 日本亚洲免费观看| 国产在线欧美日韩| 欧美一区二区美女| 亚洲婷婷综合久久一本伊一区| 91亚洲国产成人精品一区二区三| av亚洲精华国产精华| 日韩精品免费视频人成| 久久男人中文字幕资源站| 欧美在线观看18| 久久综合久久鬼色| 亚洲成人免费视频| 国外成人免费视频| 国产肉丝袜一区二区| 精品成人免费观看| 在线观看一区不卡| 欧美一区免费| 91丨porny丨蝌蚪视频| 国产一区二区三区免费观看| 国产精品久久久久久久岛一牛影视 | 欧美在线观看一二区| 欧美大片免费久久精品三p| 亚洲r级在线视频| 欧美激情1区| 久久综合久色欧美综合狠狠| 成人av资源在线观看| 在线播放亚洲一区| 日韩美女一区二区三区| 欧美在线视频不卡| 欧美在线一区二区三区| www久久精品| 精品一区二区三区日韩| 国内精品国语自产拍在线观看| 18涩涩午夜精品.www| 欧美一区1区三区3区公司| 激情综合自拍| 欧美日韩三级电影在线| aa亚洲婷婷| 国产成人在线看| 久久福利资源站| 久久疯狂做爰流白浆xx| 欧美日韩在线精品| 26uuu亚洲综合色欧美| 日韩av一二三| 久久国产精品免费| 色综合 综合色| 久久99精品久久久久久久久久久久 | 成人精品视频.| 欧美卡1卡2卡| 精品国精品国产| 伊人色综合久久天天| 另类小说欧美激情| 欧美~级网站不卡| 久久精品欧美一区二区三区麻豆| 99久久er热在这里只有精品15 | 丁香啪啪综合成人亚洲小说 | 国产天堂亚洲国产碰碰| 国产无人区一区二区三区| www.综合网.com| 日韩欧美国产一区在线观看| 久久精品在线免费观看| 午夜一区二区三区视频| 欧美精品在线视频| 99国产精品一区| 一区二区三区四区在线免费观看| 久久综合狠狠| 亚洲区一区二区三区| 久久狠狠婷婷| 日韩一区二区电影网| 亚洲色图欧洲色图| 香蕉影视欧美成人| 在线欧美小视频| 国产精品中文字幕欧美| 日韩午夜精品视频| 91国偷自产一区二区开放时间| 欧美阿v一级看视频| 欧美一区二区三区男人的天堂| 成人av在线一区二区| 黄色欧美日韩| 欧美三级午夜理伦三级中视频| 日韩你懂的电影在线观看| 中文字幕国产精品一区二区| 国产高清不卡一区| 亚洲另类春色国产| 久久久久久久波多野高潮日日| 久久日韩精品一区二区五区| 国产精品原创巨作av| 亚洲码国产岛国毛片在线| 日韩欧美的一区二区| 国产欧美日韩伦理| 不卡电影一区二区三区| 99热在这里有精品免费| 欧美日韩一二三区| 日本伊人精品一区二区三区观看方式| 红桃视频国产精品| 中文一区在线播放|