我有一些逻辑Session_Start
,这个逻辑对于我的所有控制器方法都是实际的,除了一种特殊方法。Session_start
当用户转到特殊方法 URL 时,我不需要执行逻辑。
任何想法我该怎么做?
我有一些逻辑Session_Start
,这个逻辑对于我的所有控制器方法都是实际的,除了一种特殊方法。Session_start
当用户转到特殊方法 URL 时,我不需要执行逻辑。
任何想法我该怎么做?
据我了解您的问题,如果请求特殊 url,您不希望调用 Session_Start 方法中的代码。我认为了解您想要解决的问题是什么会很有帮助。现在这是我的答案:
由于Session_Start 只被调用一次(至少通常,取决于您对会话模块的配置 - 请参阅我对您问题的评论),这仅在客户端首先调用“特殊”url时才有效,例如在调用其他url之前。如果首先调用了另一个 url,会话将根据您的代码进行初始化。重要提示:如前所述,根据您的配置,总会有一个 Session(但在这种特殊情况下,您不想在 Session_Start 中执行您的自定义逻辑):
您可以使用 Current HttpRequest并对某些属性进行检查:
// this will (usually) only be called once, on the first request of the client
protected void Session_Start() {
// perform your check here if this is the url you want to exclude
if (HttpContext.Current.Request.Url.OriginalString.ToLowerInvariant().EndsWith("something")) {
return;
}
// your initialization here that should not be executed for clients accessing the site using the above url
}
如您所见,您可以访问Request 对象,并根据您的要求在那里执行检查。