2008-11-30 76 views
1

我定义了一个控制器以通过使用[授权]属性强制进行身份验证。当会话超时时,请求仍然传递并执行,而不是强制重定向。ASP.NET使用[授权]进行身份验证

我使用FormsAuthentication来登录和注销用户。

关于如何控制它的任何想法?

实施例:

[Authorize] 
public class ProjectsController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 
+0

我打算单独提出这个问题,但是因为我们在这里,ASP.NET MVC是否具有内置身份验证shizzle ?提前致谢。 – Tablet 2008-11-30 17:38:35

+0

在一个快速而肮脏的测试中,这对我来说工作得很好。你能发布你的Web.Config文件吗? – MrJavaGuy 2008-11-30 18:01:22

+0

我的web.config是通过简单地增加的标准开箱: \t \t <认证模式= “表单”> \t \t \t <形式loginUrl = “〜/帐户/登录”/> \t \t – IEnumerator 2008-11-30 18:04:54

回答

1

此外,ASP.NET MVC建立在传统ASP.NET之上。是的,有一个“内置认证shizzle”......它是传统ASP.NET使用的相同Membership API的确切

含义...其他问题在这里。也许你已经开启了滑动会话......或者超时时间可能比你想象的要高,等等。

1

跟踪用户会话ASP.NET使用ASP.NET_SessionId的cookie。要跟踪经过身份验证的用户,ASP.NET使用Cookie(默认情况下为ASPXAUTH)。

当会话超时ASP.NET_SessionId饼干可能不再由客户端发送,但ASPXAUTH cookie被发送还是这或许可以解释为什么你的动作呈现。

要覆盖默认表单认证值,您可以看看here。我还建议您使用firebug扩展名查看客户端发送的cookie。

0

根据你的其他question,我猜你根本没有得到这个控制器。