在開發(fā)環(huán)境,只能用localhost (本機(jī)機(jī)器名) 來訪問站點(diǎn),因?yàn)樵贒otNet環(huán)境下,
域名的設(shè)置不能單單通過設(shè)置hosts文件實(shí)現(xiàn),必須在IIS里面配置。
另外:
<casClientConfig
casServerLoginUrl="https://××××.net:8443/cas/login"
casServerUrlPrefix="https://××××.net:8443/cas/"
serverName="http://localhost:1054/CasTest"
如果serverName 配置不當(dāng)也會(huì)導(dǎo)致循環(huán)重定向。
在確定
<sessionState mode="StateServer" cookieless="UseCookies" timeout="36000"></sessionState>
配置沒有問題的時(shí)候,可能因?yàn)閟erverName 的配置問題導(dǎo)致循環(huán)重定向。
CasAuthentication.cs
internal static void ProcessRequestAuthentication()
{
HttpContext context = HttpContext.Current;
// Look for a valid FormsAuthenticationTicket encrypted in a cookie.
CasAuthenticationTicket casTicket = null;
FormsAuthenticationTicket formsAuthenticationTicket = GetFormsAuthenticationTicket();
if (formsAuthenticationTicket != null)
{
ICasPrincipal principal;
if (ServiceTicketManager != null)
{
string serviceTicket = formsAuthenticationTicket.UserData;
casTicket = ServiceTicketManager.GetTicket(serviceTicket);
if (casTicket != null)
{
IAssertion assertion = casTicket.Assertion;
if (!ServiceTicketManager.VerifyClientTicket(casTicket))
{
Trace.WriteLine(String.Format("{0}:Ticket failed verification." + Environment.NewLine, CommonUtils.MethodName));
這里是調(diào)試的斷點(diǎn)設(shè)置。