首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpContext.Current.User.Identity.IsAuthenticated在Azure上不活动后停止工作的方法

HttpContext.Current.User.Identity.IsAuthenticated在Azure上不活动后停止工作的方法
EN

Stack Overflow用户
提问于 2015-05-17 09:28:55
回答 1查看 2.1K关注 0票数 29

我正在用使用Ajax(json)/Webmethod函数的页面测试Azure服务器。

其中一些函数在运行代码之前检查HttpContext.Current.User.Identity.IsAuthenticated。不幸的是,如果用户登录,页面没有向服务器发出完整的回发请求,那么只有那些检查HttpContext.Current.User.Identity.IsAuthenticated的webmethods函数在几分钟后完全停止运行,不会出现任何错误。他们甚至不运行else代码块(见下文)。

我已经在本地服务器上测试过这些页面,即使经过了很长一段时间的不活动,一切都正常运行。下面是一个Here方法的示例

代码语言:javascript
复制
[WebMethod]
public static string serviceMenu(int IDservice)
{
        StringBuilder SBphotoMenu = new StringBuilder();            
        if (HttpContext.Current.User.Identity.IsAuthenticated)
        {
            // Do stuff
        }
        else
        {
           // Do other stuff
        }

        return SBphotoMenu.ToString();
}

我按以下方式调用该webmethod:

代码语言:javascript
复制
function serviceMenu(IDservice) {
$.ajax({
    type: "POST",
    url: "/UserControls/serviceMenu",
    data: "{ IDservice: " + IDservice }",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        // Do Stuff        
    }
})
}

只有当用户登录时,才会发生此行为。现在,如果用户没有登录,那么即使在Azure.上,所有函数都能正常工作。

事实上,当webmethods停止运行,我刷新页面时,用户仍然登录,webmethods再次开始运行,但只运行了几分钟,然后再次发生相同的行为。

出什么问题了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-11 14:40:10

这个问题是由会话变量引起的,而不是自定义的。实际上,对于Azure中的ASP.NET应用程序,使用默认的"inProc“方法不会维护会话状态。Azure使用其他方法,其中有些方法是草率的:表存储、SQL或Windows缓存。

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

https://stackoverflow.com/questions/30285413

复制
相关文章

相似问题

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