NET系统集成有自己独立的登录验证方式。比如,跟报表集成时,不需要再使用报表内置的登录界面,只需要将报表默认的参数用户名fr_username和密码fr_password发送给报表系统,触发一下报表验证方式就可以实现单点登录了,以下用FineReport的.NET跨域单点登录案例简单介绍一下。
系统本身有独立的登录验证方式如下图:
1.触发报表验证方法
报表集成时不需要再一次进行登录验证,只需在项目里面的登录验证页面内触发一下报表方法,如下js方法:
function doSubmit() { var username =document.getElementById("username").value; //此处是用来提取用户名和密码 var password =document.getElementById("userPwd").value; var scr = document.createElement("iframe"); //创建iframe var dt=new Date(); scr.src = "/WebReport/ReportServer?op=fs_load&cmd=sso&username=" + username + "&password=" + password+"&time="+dt.toString(); //将报表验证用户名密码的地址指向此iframe document.getElementsByTagName("head")[0].appendChild(scr); //将iframe标签嵌入到head中 }
注:此处的单点登录是登录报表管理平台,而不是FineReport的数据决策系统,如果需要与数据决策系统做单点登录,需将
scr.src = " http://localhost:8075/WebReport/ReportServer?op=fs_load&cmd=sso&username=" + username + "&password=" + password;
改成
scr.src = " http://localhost:8075/WebReport/ReportServer?op=fs_load&cmd=sso&username=" + username + "&password=" + password;
点击项目里面的登录按钮,跳到后台进行项目里面的验证,此报表的验证方式需要在页面前台内调用javascript的方式触发,这边类似定义了两个onclick事件,而.net不能同时触发两个onclick事件,所以先要触发完一个onclick事件后再触发另一个,考虑报表没有验证完.net项目就跳转的话,导致报表没有验证成功,所以点击登录按钮首先触发报表验证方法,其次再到.net后台进行验证。
3. 触发.net前台
触发前台报表验证方法,新建一个登录按钮,设置按钮OnClientClick属性为:OnClientClick="doSubmit();return false;",即触发前台doSubmit()方法,doSubmit()方法,首先把获取的用户名和密码的值,发送到报表系统,报表服务将带着这两个参数访问认证地址进行认证。而项目本身有个登录按钮是触发的项目后台的方法,我们这边首先触发报表前台再通过js的方式触发后台的那个登录按钮,所以这边需要把之前的登录按钮设置隐藏,属性为Style="display: none;"。
4. 触发.net后台
报表验证完再触发.net项目后台登录验证的方法,通过登录按钮ID为Button1,使用document.getElementById("Button1").click();触发登录按钮,但是每个浏览器执行的方式不同,所以这边需要判断一下,代码如下:
if (scr.attachEvent){ //判断是否为ie浏览器 scr.attachEvent("onload", function(){ //如果为ie浏览器则页面加载完成后立即执行 var f = document.getElementById("Button1"); f.click(); }); } else { scr.onload = function(){ //其他浏览器则重新加载onload事件 var f = document.getElementById("Button1"); f.click(); }; }
下面以简单的登录验证页面login.aspx为例head中调用javascript
示例
1、登录前台页面
以简单的登录验证页面login.aspx为例,head中调用javascript触发报表方法:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>无标题页</title> <script type="text/javascript" language="javascript"> function doSubmit() { var username =document.getElementById("username").value; //此处是用来提取用户名和密码 var password =document.getElementById("userPwd").value; var scr = document.createElement("iframe"); //创建iframe var dt=new Date(); scr.src = "/WebReport/ReportServer?op=fs_load&cmd=sso&username=" + username + "&password=" + password+"&time="+dt.toString(); //将报表验证用户名密码的地址指向此iframe if (scr.attachEvent){ //判断是否为ie浏览器 scr.attachEvent("onload", function(){ //如果为ie浏览器则页面加载完成后立即执行 var f = document.getElementById("Button1"); f.click(); }); } else { scr.onload = function(){ //其他浏览器则重新加载onload事件 var f = document.getElementById("Button1"); f.click(); }; } document.getElementsByTagName("head")[0].appendChild(scr); //将iframe标签嵌入到head中 } </script> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="username" runat="server" Style="z-index: 100; left: 156px; position: absolute; top: 42px"></asp:TextBox> <asp:TextBox ID="userPwd" runat="server" Style="z-index: 101; left: 157px; position: absolute; top: 91px"></asp:TextBox> <asp:Label ID="Label1" runat="server" Height="22px" Style="z-index: 102; left: 76px; position: absolute; top: 46px" Text="用户名:" Width="77px"></asp:Label> <asp:Label ID="Label2" runat="server" Style="z-index: 103; left: 80px; position: absolute; top: 88px" Text="密码:" Width="64px"></asp:Label> <asp:Button ID="Button1" runat="server" Style="z-index: 104; display:none; left: 84px; position: absolute; top: 132px" Text="登录" Width="66px" /> <asp:Button ID="Button2" runat="server" OnClientClick="doSubmit();return false;" Style="z-index: 106; left: 178px; position: absolute; top: 133px" Text="登录" Width="100px" /> </div> </form> </body> </html>
前台和后台验证成功之后,单点登录页面就设计完成了。
报表工具是通过url传用户名和密码进行验证,传到报表服务器是以session的方式保存,防止被人中途拦截会导致系统泄密,可以对登录进来的密码进行加密,或者使用https证书,让请求在传输过程中加密,配置方法也很简单。这种方式还存在一个证书合法性问题,用自己生成的证书,客户端在访问报表中浏览器会显示证书非法警告,所以需要去购买合法证书。目前国内最便宜的证书一年是一千多元。
2、平台设置
一般情况下报表集成到.net系统,首先登录访问.net的项目,所以自定义登录页面访问地址可以不需要设置,如果没有登录到.ne项目,先访问我们的报表了,而这时访问报表的登录页面是报表内置的登录界面,需使用自动登录页面地址为您系统的登录地址,操作如下:
打开http://localhost/WebReport/ReportServer?op=fr_platform,FR管理平台,选择权限配置>登录设置,自定义登录页面访问地址上,输入自己的登录页面路径http://localhost/FRtest/login.aspx,如下图所示:
相关推荐
RFID经典系统集成方案
它基于.NET Framework,提供了一种高效、安全且易于维护的方式来构建 Web 解决方案。本篇文章将深入探讨如何利用 ASP.NET 开发一个在线投票系统,包括系统的架构、数据库设计以及使用说明。 ### 一、系统架构 1. *...
总的来说,"大学专用智能评教系统源代码ASP.NET"是一项结合了软件工程、数据库设计、Web开发和教育管理的复杂项目,其目标是为高校提供一个实用、高效且安全的在线评教解决方案。通过深入理解和运用这些知识点,...
在阅读本书的过程中,你将学习到如何利用.NET Framework提供的工具和类库,如System.Web.Services和System.Runtime.Remoting,来构建高效、可靠的分布式解决方案。书中的实例和实战演练将帮助你更好地理解这些抽象...
学生成绩管理系统是一款基于C#、ASP和ASP.NET技术构建的应用程序,主要用于教育机构管理和跟踪学生的学术成绩。这个系统能够帮助教务人员高效地记录、分析和报告学生的学业表现,从而提升教学管理效率。 首先,C#是...
【标题】:“B2C商城综合系统源码(asp.net)”是基于ASP.NET技术开发的一套电子商务解决方案,专为在线零售业务(Business-to-Consumer)设计。它涵盖了网上商城的基本功能,如商品展示、购物车、订单处理、支付集成...
ASP.NET网上购物商城系统是一种基于ASP.NET技术构建的电子商务平台,它提供了全面的在线购物解决方案。这个源码项目是开发者们宝贵的参考资料,因为ASP.NET框架的源代码通常不易收集,尤其是完整实现购物功能的源码...
这个系统基于ASP.NET技术构建,提供了全面的物流管理解决方案,旨在优化物流作业流程,提高效率,降低成本。以下是对这个系统的详细说明: 1. ASP.NET框架:ASP.NET是微软推出的一种Web应用程序开发框架,它基于...
总之,"ASP.NET餐饮管理系统"是一个集成了Web技术与数据库管理的实用工具,它简化了餐饮行业的日常运营流程,提高了工作效率。开发者通过合理的架构设计和功能实现,为餐饮企业带来了便捷的数字化管理手段。
总结来说,"asp.net办公自动化系统"利用了ASP.NET技术,结合VS.NET 2003开发环境,构建了一个成熟的办公管理解决方案。提供的文件涵盖了系统使用说明、Web控件、备份文件、音频教程以及系统源码等多个方面,全面支持...
这个系统的核心是利用.NET框架的强大功能,结合Web开发的最佳实践,为在线销售提供了一个稳定、高效且易于维护的解决方案。 在ASP.NET框架下,该系统可能采用了C#或VB.NET作为后端编程语言,利用ASP.NET MVC(Model...
ASP.NET考勤系统是一款基于微软的.NET框架,利用ASP.NET技术构建的企业级考勤管理解决方案。这个系统设计目的是为了高效地记录和管理员工的出勤情况,为人事部门提供便捷的数据统计和分析功能。以下是对该系统的一些...
微软的.NET Server是其在2000年代初期推出的一款服务器操作系统,主要面向企业级市场,旨在提供强大的网络服务、应用程序托管和管理功能。这一平台的构建基于.NET Framework,它是一个全面的开发和运行环境,支持...
本文将详细介绍一种基于ASP.NET的跨域SSO解决方案,并探讨其实施细节与优势。 #### 二、跨域SSO概念解析 ##### 2.1 什么是SSO? 单点登录是一种身份验证机制,允许用户通过一次登录操作即可访问所有授权系统或...
.NET HIS系统,全称为.NET Healthcare Information System,是基于微软的.NET框架开发的医疗信息系统。这个系统主要用于医疗机构管理和信息处理,涵盖了医院日常运营的多个关键领域,如患者管理、医生排班、药品库存...
在这个特定的案例中,我们讨论的是一个基于.NET框架的OA(Office Automation)办公管理系统源码。OA系统是一种自动化管理工具,旨在提高组织的工作效率,通过电子化流程处理日常办公任务。 该源码是".net完整版本...
这个系统为开发者和商家提供了一个完整的解决方案,用于创建和管理在线商店。ASP.NET是一个强大的Web应用程序框架,由微软开发,它允许开发者使用C#或VB.NET等编程语言来构建动态、数据驱动的网站。 在"asp.net ...
标题中的“一个应用程序框架,您可以将它集成到任何.NET/C#应用程序中”指的是Furion框架,这是一款专为.NET开发者设计的高级开发框架。Furion的目标是简化.NET/C#应用的开发流程,提高代码复用性,并促进开发效率。...
这个系统是.NET框架下的一个典型应用,展示了C#编程语言与ASP.NET框架的高效结合,为电子商务平台提供了一种强大的解决方案。 首先,C#(读作"C Sharp")是一种面向对象的编程语言,由微软公司开发,主要应用于...
5. `系统`:意味着这是一个完整的软件解决方案,集成了多个子系统,以协同工作来满足医院的管理需求。 【详细知识点】: 1. **C#基础**:理解C#的基本语法、类和对象、继承、多态、接口等面向对象特性,以及异常...