1、官方下载.net 客户端dll
在工程中加载dll
webconfig中配置
<configSections>
<sectionname="casClientConfig"type="DotNetCasClient.Configuration.CasClientConfiguration, DotNetCasClient"/>
</configSections>
<casClientConfig
//cas服务端登录页面
casServerLoginUrl="http://192.168.12.196/cas/login"
//cas服务端验证
casServerUrlPrefix="http://192.168.12.196/cas"
//跳转的页面,只取到http://localhost:3273/
serverName="http://localhost:3273/ExampleWebSite"
notAuthorizedUrl="~/NotAuthorized.aspx"
cookiesRequiredUrl="~/CookiesRequired.aspx"
redirectAfterValidation="true"
gateway="false"
renew="false"
singleSignOut="true"
ticketTimeTolerance="5000"
ticketValidatorName="Cas20"
serviceTicketManager="CacheServiceTicketManager"
gatewayStatusCookieName="CasGatewayStatus" />
<system.web>
.net 自己的Forms认证这的配置也很重要,
<authenticationmode="Forms">
<forms
loginUrl="http://192.168.12.196/cas/login"
timeout="30"
defaultUrl="~/Default.aspx"
cookieless="UseCookies"
slidingExpiration="true"
//发布到外网的话path="/"
path="/ExampleWebSite/"
/>
</authentication>
<authorization>
<denyusers="?"/>
<allowusers="*"/>
</authorization
最后就是httpModel的配置了
<httpModules>
<addname="DotNetCasClient"type="DotNetCasClient.CasAuthenticationModule,DotNetCasClient"/>
</httpModules>
//跳回的地址=serverName+path+"跳转前的页面"
//跳回页面取数据方法
using DotNetCasClient;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
getUserInfo();
}
private void getUserInfo()
{
if (CasAuthentication.ServiceTicketManager != null)
{
HttpCookie ticketCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (ticketCookie != null)
{
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(ticketCookie.Value);
if (ticket != null)
{
CasAuthenticationTicket casTicket = CasAuthentication.ServiceTicketManager.GetTicket(ticket.UserData);
if (casTicket != null)
{
TextBox1.Text = casTicket.NetId;
TextBox2.Text = casTicket.Assertion.PrincipalName;
}
}
}
}
}
}
//单点退出
修改DotNetCasClient.cs页面
public static void SingleSignOut()
{
Initialize();
HttpContext context = HttpContext.Current;
HttpResponse response = context.Response;
// Necessary for ASP.NET MVC Support.
if (context.User.Identity.IsAuthenticated)
{
ClearAuthCookie();
//update by songjg logout into login
//注销页面
//string singleSignOutRedirectUrl = UrlUtil.ConstructSingleSignOutRedirectUrl();
//修改重定向到login页面
string strLoginUrl = CasClientConfig.CasServerLoginUrl;
// Leave endResponse as true. This will throw a handled ThreadAbortException
// but it is necessary to support SingleSignOut in ASP.NET MVC applications.
response.Redirect(strLoginUrl, true);
//update by songjg logout into login
}
}
生成新的动态库DotNetCasClient.dll
web.config
去掉重定向配置
notAuthorizedUrl="~/NotAuthorized.aspx" 改为
notAuthorizedUrl=""
不改会发生重定向退出事件
protected void LinkButton1_Click(object sender, EventArgs e)
{
Session.Clear();
CasAuthentication.SingleSignOut();
}
2、服务端的源码中AssemblyInfo.cs.tmpl文件去掉.tmpl 编译动态库工程。工程就能运行起来
另一种办法,不用重编译代码,只要修改相应文件就能满足退出到登录页面
配置PHP CLIENT6. 如何实现单点注销
注销通过转到http://hostname:port/cas/logout时,注销成功后,转到成功提示页面。如果需要指定注销成功后的页面,有两点要做:
1、 打开tomcat6.0\cas\WEB-INF\cas-server.xml,找到下面代码:
<bean id="logoutController" class="org.jasig.cas.web.LogoutController"
p:centralAuthenticationService-ref="centralAuthenticationService"
p:logoutView="casLogoutView"
p:warnCookieGenerator-ref="warnCookieGenerator"
p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"
/>
加入p:followServiceRedirects ="True"参数。
2、修改注销按钮的跳转页面:
http://hostname:port/cas/logout?service=http://what-you-want-to
http://hi.baidu.com/spanlessbug/item/1d5ff3cad25bf5d6964452b5
cas response.spush() 有关 去掉这句cas就正常了。待验证?
相关推荐
这个压缩包提供的代码是直接可运行的,这意味着已经包含了必要的配置和依赖,开发者只需安装MySQL数据库,填充相关数据,然后启动服务端和客户端项目,即可测试SSO功能。 四、自定义配置 由于描述中提到“数据库是...
2. **C# MQTT客户端实现**:C#源码可能包括了MQTT客户端类,负责连接到Broker,订阅和发布消息。客户端可能包含连接管理、身份验证、心跳保持等功能。 3. **连接与断开**:源码中应该有建立和断开与MQTT Broker连接...
标题中的"C# Netty 客户端,服务器端包含双向接收"揭示了这是一个关于使用C#语言实现基于Netty框架的客户端和服务器端通信的项目。Netty是Java平台上的一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可...
本主题聚焦于“C# WinForm客户端浏览器”,这是一个基于C#编程语言和WinForms框架构建的内置浏览器功能。WinForms是.NET Framework的一部分,它为开发者提供了创建图形用户界面(GUI)的工具和控件。 `WebBrowser`...
本文将深入探讨在C#中,客户端如何通过HTTP协议与服务端进行交互,以实现简单的计算任务,如计算1+1。 首先,我们需要理解HTTP(超文本传输协议)的基础。HTTP是一种应用层协议,用于在Web上交换各种类型的数据。它...
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net; using System.Net.Sockets;... }
在这个场景中,`c#Socket客户端断线重连封装类(可直接调用).rar`提供的源代码文件`c#Socket客户端断线重连封装类(可直接调用).cs`显然是一个专门为C# WebSocket客户端设计的类,旨在处理网络连接的断开与重新...
在C#中,可以使用.NET Framework或.NET Core来实现WebSocket客户端和服务端的开发。下面将详细介绍C# WebSocket客户端和服务端的实现,以及源代码中的关键知识点。 **一、WebSocket简介** WebSocket协议是HTML5定义...
在C#中,Socket编程是网络通信的基础,用于实现客户端与服务器之间的数据传输。当遇到网络不稳定或服务器临时故障等情况时,客户端可能会突然断开连接。为了保证服务的连续性和可靠性,我们需要实现一个能自动断线重...
在本文中,我们将深入探讨如何使用C# WinForm应用程序实现WebSocket客户端,以便与WebSocket服务器进行实时数据通信。Visual Studio 2019是我们的开发环境,我们将利用其强大的功能来构建用户界面,并集成WebSocket...
本文将深入讲解如何使用C# WinFrom客户端结合WebService实现自动更新升级的功能。 首先,我们要理解C# WinFrom客户端。C#是一种面向对象的编程语言,广泛应用于Windows桌面应用开发,WinForm则是C#中的用户界面框架...
标题中的"C# Ftp客户端源码"指的是使用C#编程语言编写的FTP(File Transfer Protocol)客户端应用程序的源代码。FTP是一种网络协议,用于在互联网上进行文件传输。C#是微软开发的一种面向对象的编程语言,常用于构建...
6. **ClickOnce部署**: 微软的ClickOnce部署技术使得C#智能客户端应用可以轻松地安装、更新和卸载。它减少了用户在安装和维护软件过程中的困扰。 7. **安全性**: 智能客户端需要考虑数据保护、身份验证和授权。.NET...
【C#简单客户端】是一个适合新手入门的编程项目,它主要展示了如何使用C#语言构建一个基础的客户端应用程序。在C#中,客户端通常指的是能够与服务器进行交互的应用,例如网络浏览器、桌面应用等。这个项目可能是为了...
本主题聚焦于"C# ftp客户端源代码",这是一个使用C#编写的网络应用程序,实现了FTP(File Transfer Protocol)协议,使得用户能够通过FTP进行文件的上传和下载。 FTP是一种基于TCP/IP协议族的应用层协议,它为...
文档内有客户端和服务端socket,实际项目中只用到了客户端,会比较详细,支持断开重连
【基于C#的TFTP客户端】是一个编程项目,利用C#语言在Visual Studio 2008环境下开发的。TFTP(Trivial File Transfer Protocol,简单文件传输协议)是一种轻量级的网络协议,主要用于快速传输小文件或者在低带宽环境...
**MQTT客户端C#版**是一种使用C#编程语言实现的MQTT协议客户端应用程序,它为开发者提供了一种简单易用的方式与MQTT服务器进行通信。MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅式消息传输...
随着技术的不断进步,越来越多的开发者倾向于使用高级编程语言来实现FTP服务端和客户端的功能,而C#作为一种面向对象、类型安全的编程语言,因其强大的开发环境和丰富的类库,成为开发者实现网络通信和文件传输的...
11. **软件发布**:最终的邮件客户端可能会被打包成安装程序,通过ClickOnce或MSI技术分发,方便用户安装和升级。 通过以上知识点,我们可以看出这个C#邮件客户端项目不仅展示了C#编程的基本技能,还涵盖了网络通信...