AuthorizeFilter和Authentication方法如何在幕后工作?

时间:2014-01-20 10:40:01

标签: asp.net-mvc forms-authentication authorize

我想简要了解一下授权过滤器和FormAuthentication.SetAuthCookie是如何工作的。在阅读了一些关于该语言的书籍后,这是我唯一觉得含糊不清的东西。

我不明白授权过滤器如何知道要查找的位置。那么FormsAuthenticationTicket VS FormAuthentication怎么样?并且cookie是最安全的方式,我的意思是我确定可以从浏览器导出cookie并在其他地方使用它。?

1 个答案:

答案 0 :(得分:0)

您可能会发现此question有用。

如果您对“授权”过滤器的工作原理感兴趣,可以查看源代码:AuthorizeAttribute

简要地说,Authorize过滤器将通过检查HttpContext.User.Identity.IsAuthenticated属性来检查用户是否已通过身份验证。在表单身份验证的情况下,FormsAuthenticationModule将设置User属性。

FormsAuthentication.SetAuthCookie方法为经过身份验证的用户创建票证(假设用户提供了正确的凭据)并将其添加到响应的Cookie集合中。或者,如果需要,可以将模块配置为使用无cookie验证,但加密票证仍然随每个HTTP请求一起发送。无论哪种方式,客户端(浏览器)都需要告诉服务器所请求的身份验证。

关于您对安全的担忧,this问题中有一些想法。