0

我有一些逻辑Session_Start,这个逻辑对于我的所有控制器方法都是实际的,除了一种特殊方法。Session_start当用户转到特殊方法 URL 时,我不需要执行逻辑。

任何想法我该怎么做?

4

1 回答 1

1

据我了解您的问题,如果请求特殊 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 对象,并根据您的要求在那里执行检查。

于 2013-09-06T11:19:01.553 回答