我们有一个用于注册的电子邮件确认页面,可以使用一次性链接来激活该帐户。在Site.Master中使用LogonUserControl的Asp.net Mvc FormsAuth
该网站的性质是这样的,我们可以让这个链接自动登录用户。这项要求正在审查中(应我的要求!)。
以下情况被证明是一个有点混乱:
- 用户按照他们的电子邮件
- 确认控制器上这土地上的确认链接。
所有的事情都是好的,该用户将自动登录,使用:
FormsAuth.SignIn(user.UserName,false);
从控制器
视图返回视图使用其中包含部分母版页视图是LogonUserControl.ascx组件。 内成分,有以下代码(说到直出asp.net的MVC项目模板):
if (Request.IsAuthenticated) { /*foo*/ }
当页面呈现,Request.IsAuthenticated
是尽管在控制器签约用户返回false 。
我想知道为什么这可能是。在调用FormsAuth.SignIn
方法或者使用请求对象进行此检查时,主服务器是否已经写出错误,因为在收到请求时,它确实没有进行身份验证?
编辑:它显示默认LogOn控制器使用重定向而不是返回视图。这当然会解决问题,但是我对上述场景为什么不起作用感兴趣。
很好的解释,一段时间跑到这里,从来没有理解为什么,现在我做。 – mxmissile 2009-09-08 20:29:37