Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp.net中指定登录名/原则后运行代码_Asp.net_Authentication - Fatal编程技术网

在asp.net中指定登录名/原则后运行代码

在asp.net中指定登录名/原则后运行代码,asp.net,authentication,Asp.net,Authentication,好的,我对asp.net身份验证和授权还不熟悉,这是我第一天研究它,所以我可能会走错方向,我真的希望有人能给我指出正确的方向 我需要在用户“登录”后运行一些代码,无论是通过表单身份验证、windows身份验证,甚至是自定义身份验证 我需要此代码在每次登录后只运行一次,所以我排除处理应用程序\u AuthenticateRequest/Gobal\u asax\u PostAuthenticateRequest是否正确?这些似乎构成了每个请求的管道的一部分 在了解了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类吗?对于身份验证模块何时解析用户,这似乎是相当不可知的


我还没有研究我是否可以连接到Auth cookie的设置中,这是一条值得追求的途径吗

问题是没有“用户登录后”之类的内容。从服务器的角度来看,连续的请求是不相关的。没有简单的方法可以确定当前请求是“身份验证后的第一个请求”还是“第二个/第三个或另一个请求”


如果不以明确的方式支持一些可能的身份验证方案,您可能不会找到任何令人满意的解决方案。一种可能的方法是在常规管道的
AuthorizeRequest
事件中运行代码,并发出cookie将当前会话标记为“已处理”。但是,如果浏览器不支持cookie(或支持不可靠),这可能会有问题。

您是在创建通用框架还是其他什么?因为当你说“窗体、windows甚至自定义”时,听起来你无法控制用户的身份验证方式。我们的软件安装在客户端,他们可以决定如何对用户进行身份验证,所以是的,我们无法控制。