2017-01-17 4 views
0
다음과 같이 나는 폼 인증 설정을 가지고

:ASP.NET있는 FormsAuthentication 루트에서 Default.aspx를 리디렉션되지 않습니다

의 Web.config :

<authentication mode="Forms"> 
    <forms slidingExpiration="true" cookieless="UseCookies" timeout="180" loginUrl="Login.aspx" defaultUrl="Default.aspx" name=".ASPXVEWPAUTH"/> 
</authentication> 
<authorization> 
    <deny users="?" /> 
</authorization> 

Login.aspx :

/**Auth logic in button click**/ 
FormsAuthentication.RedirectFromLoginPage(username, false); 

Login.aspx 및 Default.aspx 페이지는 모두 응용 프로그램의 루트에 있습니다.

로그인 할 때마다 다시 로그인 페이지로 리디렉션됩니다. 방금 Default.aspx로 가면 바로 로그인 페이지로 리디렉션되고 Default.aspx는 returnUrl 쿼리 문자열에 넣습니다. 그런 다음 로그인 할 때 다시 쿼리 문자열이없는 Login.aspx로 리디렉션됩니다. . 쿼리 문자열없이 다시 로그인하려고하면 Login.aspx로 돌아갑니다.

defaultUrl을 루트 외부 페이지로 변경하면 아무 문제없이 잘 리디렉션됩니다.

FormsAuthentication.RedirectFromLoginPage(username, false);Response.Redirect("Default.aspx");으로 변경하면 리디렉션이 작동하지 않습니다.

<deny users="?" /><allow users="?" />으로 변경하면 직접 이동하여 Default.aspx를로드 할 수는 있지만 리디렉션은 여전히 ​​작동하지 않습니다.

나는 완전히 손실되었습니다. 전에 이런 행동을 본 적이 없으며 시도 할 아이디어가 없습니다. 왜 응용 프로그램 루트 안의 페이지로 리디렉션되지 않습니까? 어떤 도움이라도 대단히 감사합니다.

답변

0

IIS Express 문제였습니다. 로컬 IIS에서 실행하려고했지만 정상적으로 작동했습니다. 나는 express를 IIS에 다시 설치했고, 이제는 제대로 작동하는 것처럼 보인다.