在開發環境,只能用localhost (本機機器名) 來訪問站點,因為在DotNet環境下,
域名的設置不能單單通過設置hosts文件實現,必須在IIS里面配置。
另外:
如果serverName 配置不當也會導致循環重定向。
在確定
配置沒有問題的時候,可能因為serverName 的配置問題導致循環重定向。
這里是調試的斷點設置。
域名的設置不能單單通過設置hosts文件實現,必須在IIS里面配置。
另外:
<casClientConfig
casServerLoginUrl="https://××××.net:8443/cas/login"
casServerUrlPrefix="https://××××.net:8443/cas/"
serverName="http://localhost:1054/CasTest"
casServerLoginUrl="https://××××.net:8443/cas/login"
casServerUrlPrefix="https://××××.net:8443/cas/"
serverName="http://localhost:1054/CasTest"
如果serverName 配置不當也會導致循環重定向。
在確定
<sessionState mode="StateServer" cookieless="UseCookies" timeout="36000"></sessionState>
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));
{
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));
這里是調試的斷點設置。