在RewritePath之后,ASP.NET表单身份验证很麻烦

时间:2015-07-01 09:22:41

标签: c# asp.net forms authentication forms-authentication

我遇到了一个问题,我无法在我的开发服务器(IIS 8.5)上复制,但是在我的实时服务器上发生了这个问题。

ASP.NET网站使用表单身份验证,除非重写URL,否则它将完美运行。在重写的URL上,用户不被视为已登录。如果单击“登录”,则用户登录后无需重定向到登录表单!这意味着在单击“登录”后,cookie以某种方式用于对用户进行身份验证。刷新重写的页面将恢复为未登录。

以下是一些具体的例子:

转到http://www.paraglidingmap.com并使用以下详细信息登录(屏幕右上角):

用户名:test

密码:hibiscus

现在转到使用URL重定向的此页面,您将无法登录!但是,如果单击“登录”,您将神奇地登录,直到刷新页面。 http://www.paraglidingmap.com/page/AppAndroid

那里的人必须比我聪明。为什么这只发生在实时服务器而不是dev?我已经检查过两台服务器上都使用了集成管道。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。而不是使用HttpContext.Current.RewritePath,使用Context.Server.TransferRequest似乎也传输了请求cookie。

如果有人能解释为什么会这样,我将不胜感激。