jasig asp.net mvc cas客户端页面没有正确重定向

时间:2012-05-29 13:48:19

标签: asp.net-mvc client cas jasig

我一直在使用jasig .net cas客户端。我在本地计算机上设置了cas服务器,可以使用https://localhost:8443/cas-server-webapp-3.4.12/login

进行评估

我在帐户控制器登录操作上设置了authorize属性。

我正在关注此网址https://wiki.jasig.org/pages/viewpage.action?pageId=32210981

中提供的所有内容

当我运行应用程序时,它会转到cas登录页面,但在身份验证之后返回http://localhost:1672/,然后在浏览器中出现错误,因为“页面未正确重定向”。

我不知道我是如何收到此错误的,所有内容都在web.config中正确设置。

请帮忙

当我使用http://localhost:8080/cas-server-webapp-3.4.12/login(非安全网址)而不是https://localhost:8443/cas-server-webapp-3.4.12/login(安全网址)时,它可以正常工作。

我认为自签名证书存在问题。是否可以创建有效的证书并使用它。至少我应该尝试创建有效的证书并尝试。但我不知道如何创建有效的证书。还请告诉我如何创建有效证书。我试过谷歌但没有成功找到如何创建有效证书,以便浏览器不显示“自签名证书错误”。

3 个答案:

答案 0 :(得分:3)

根据我自己的经验,除了让自签名证书有效之外:

我必须将SSO服务器上的自签名证书安装到托管webapp的Windows 2008 Server上。

Trusted Root Cert Authorities下在用户帐户和计算机帐户下安装证书。

您可以在MMC下执行此操作,然后添加证书管理单元。

使用IE测试您的设置以浏览到相关的sso服务器。您不应再看到有关该证书的警告。请记住使用IE进行检查,其他浏览器似乎并不关心受信任的根证书设置。

接下来,当部署ASP MVC时,我必须使用经典的Application Pool和 对于web.config中的cas配置设置,将proxyTicketManagergatewayStatusCookieName保留为空字符串。

我直接连接到sso服务器,因此这两个被取出,或者协议错误和无限循环。

然后没有更多的无限重定向循环抱怨。

答案 1 :(得分:2)

我发现了问题所在。当我们使用安全连接时,我们需要在CAS服务器端和我们的Web应用程序端都有SSL证书。

所以在CAS服务器端,它必须是

https://localhost:8443/cas-server-webapp-3.4.12/login

在我们的网络应用程序方面,它必须是

https://servername/mywebapp

如果您使用的是自签名证书,请确保运行CAS的服务器信任Web应用程序的证书。

答案 2 :(得分:1)

你应该在web.config成功登录后指定返回URL(只是服务器而不是整个url) 例如:您的应用已在http://localhost:8080/someWebApp/

当您转到登录页面时,您可以在查询字符串参数上看到返回的网址编码

<casClientConfig casServerLoginUrl="https://localhost:8443/cas-server-webapp-3.4.12/login" 
                   casServerUrlPrefix="https://localhost:8443/cas-server-webapp-3.4.12/" 
                   serverName="http://localhost:8080" 
                   notAuthorizedUrl="~/notAuthorized.html" 
                   cookiesRequiredUrl="~/CookiesRequired.html" 
                   redirectAfterValidation="true" 
                   renew="false" 
                   singleSignOut="true" 
                   ticketValidatorName="Cas20" 
                   serviceTicketManager="CacheServiceTicketManager"/>