首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自定义FormsAuthenticationTicket验证

自定义FormsAuthenticationTicket验证
EN

Stack Overflow用户
提问于 2012-03-28 00:11:38
回答 1查看 1.6K关注 0票数 1

我有一个网站,托管了许多asp.net应用程序。有些是用MVC2编写的,有些是用MVC3编写的,有些不是用内部和二进制部署编写的(尽管我们可以找到源代码),还有很多是用ASP.Net 2.0 webforms编写的。在所有这些站点中,我们使用来自登录应用程序的单个登录页面。我们可以这样做,因为所有应用程序共享:

  1. 相同的应用程序池
  2. 相同的机器键
  3. 相同的登录cookie名称

我的问题是,他们也有共同的安全问题,没有曲奇欺骗保护。我的计划是在登录cookie中添加一些额外的信息( ip的前两个字节,用户代理)(可能在useradata字段中),然后在接受cookie之前对每个请求进行验证。

我的问题是,asp.net在哪里检查表单身份验证票证并加载用户,我是否可以在使用登录之前重写它来检查一些额外的内容。

如果我不必将这段代码添加到每个global.cs中,并将其放入某个dll中,并在配置文件中引用该dll,那将是一件好事。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-09 02:30:46

除非编写一个新的FormsAuthenticationModule,,否则不能覆盖身份验证,但是有一种更简单的方法。当ASP.NET管道处理请求时,在每一步都会引发一个事件,您可以在这里访问ASP.NET管道并完成您的工作。

在这种情况下,可以在PostAuthenticateRequestHandler事件处理程序中验证cookie。

代码语言:javascript
运行
复制
 HttpCookie authCookie = Context.Request.Cookies["YourFormsCookieName"];
 if (IsValidAuthCookie(authCookie))
 {
   // do some stuff
 }
 else
 {
   // expire cookie using FormsAuthentication.Signout()
   // do some stuff
 }

这是一个有用的链接:表单认证

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9899473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档