我一直在使用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
(安全网址)时,它可以正常工作。
我认为自签名证书存在问题。是否可以创建有效的证书并使用它。至少我应该尝试创建有效的证书并尝试。但我不知道如何创建有效的证书。还请告诉我如何创建有效证书。我试过谷歌但没有成功找到如何创建有效证书,以便浏览器不显示“自签名证书错误”。
答案 0 :(得分:3)
根据我自己的经验,除了让自签名证书有效之外:
我必须将SSO
服务器上的自签名证书安装到托管webapp的Windows 2008 Server上。
在Trusted Root Cert Authorities
下在用户帐户和计算机帐户下安装证书。
您可以在MMC
下执行此操作,然后添加证书管理单元。
使用IE测试您的设置以浏览到相关的sso服务器。您不应再看到有关该证书的警告。请记住使用IE进行检查,其他浏览器似乎并不关心受信任的根证书设置。
接下来,当部署ASP MVC时,我必须使用经典的Application Pool和
对于web.config
中的cas配置设置,将proxyTicketManager
和gatewayStatusCookieName
保留为空字符串。
我直接连接到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"/>