在asp.net中指定登录名/原则后运行代码
好的,我对asp.net身份验证和授权还不熟悉,这是我第一天研究它,所以我可能会走错方向,我真的希望有人能给我指出正确的方向 我需要在用户“登录”后运行一些代码,无论是通过表单身份验证、windows身份验证,甚至是自定义身份验证 我需要此代码在每次登录后只运行一次,所以我排除处理应用程序\u AuthenticateRequest/Gobal\u asax\u PostAuthenticateRequest是否正确?这些似乎构成了每个请求的管道的一部分 在了解了asp.net如何处理整个身份验证和授权过程之后,我正在努力寻找一个钩子。我开始研究代码,发现FormsAuthenticationModule触发了几个WebBaseEvent,但是,挂接到asp.net helath监控感觉像是黑客攻击,我还没有发现WindowsAuthenticationModule触发相同的事件。windowsAuthenticationModule似乎没有引发任何事件,我也看不到从HTTPContext.SetPrincipalNoDemand引发任何事件(HTTPContext没有引发任何事件) 有没有什么好方法可以做到这一点,或者我应该研究一下周围的工作 我应该再看看HttpApplication类吗?对于身份验证模块何时解析用户,这似乎是相当不可知的在asp.net中指定登录名/原则后运行代码,asp.net,authentication,Asp.net,Authentication,好的,我对asp.net身份验证和授权还不熟悉,这是我第一天研究它,所以我可能会走错方向,我真的希望有人能给我指出正确的方向 我需要在用户“登录”后运行一些代码,无论是通过表单身份验证、windows身份验证,甚至是自定义身份验证 我需要此代码在每次登录后只运行一次,所以我排除处理应用程序\u AuthenticateRequest/Gobal\u asax\u PostAuthenticateRequest是否正确?这些似乎构成了每个请求的管道的一部分 在了解了asp.net如何处理整个身份验
我还没有研究我是否可以连接到Auth cookie的设置中,这是一条值得追求的途径吗 问题是没有“用户登录后”之类的内容。从服务器的角度来看,连续的请求是不相关的。没有简单的方法可以确定当前请求是“身份验证后的第一个请求”还是“第二个/第三个或另一个请求”
如果不以明确的方式支持一些可能的身份验证方案,您可能不会找到任何令人满意的解决方案。一种可能的方法是在常规管道的
AuthorizeRequest
事件中运行代码,并发出cookie将当前会话标记为“已处理”。但是,如果浏览器不支持cookie(或支持不可靠),这可能会有问题。您是在创建通用框架还是其他什么?因为当你说“窗体、windows甚至自定义”时,听起来你无法控制用户的身份验证方式。我们的软件安装在客户端,他们可以决定如何对用户进行身份验证,所以是的,我们无法控制。