Azure 应用服务(移动)重新登录挂起

标签 azure azure-web-app-service azure-mobile-services

我正在使用带有部署槽的 Azure 移动应用,登录的服务提供商是 Microsoft。在交换和用户重新登录期间,我有一些奇怪的行为。

AD 的性能是否更好/不同? [听说它还没有正式发布?]

我正在开发人员槽中进行开发,所有内容均专门为此环境配置,测试和更新正在运行。我将服务器上传到登台,现在使用相同的数据库和设置(微软身份验证除外)。服务器再次经过验证,可以在客户端和服务器上正常工作。

然后我使用交换来更改暂存和生产插槽。生产槽具有 Microsoft 帐户登录设置。

交换后,如果按照this link进行了referesh token 调用,则用户登录将无限期地继续(无超时,即运行几分钟而没有任何停止) :

//retrieve user info
user = new MobileServiceUser(credential.UserName);
credential.RetrievePassword();
//refresh token
user.MobileServiceAuthenticationToken = credential.Password;
JObject refreshJson = (JObject)await ((App)Application.Current).MobileService.InvokeApiAsync(
                        "/.auth/refresh",
                        System.Net.Http.HttpMethod.Get,
                        null);

我最初的问题是是否可以插入超时,例如通话时 2 秒强制用户重新输入凭据?

因为如果用户注销然后使用正常登录过程重新登录,它似乎可以工作:

user = await ((App)Application.Current).MobileService.LoginAsync(provider);
credential = new PasswordCredential(provider.ToString(), user.UserId, user.MobileServiceAuthenticationToken);
vault.Add(credential);
string newToken = refreshJson["authenticationToken"].Value<string>();

问题

是否可以在 MobileServiceClient.invokeApiAsync 调用上插入超时?

是否可以进行一些设置以使交换机制不会引入此问题?

有没有办法改善登录/重新登录流程,用户提示登录经常失败。除了交换期间之外,我无法在其他情况下复制它。这可能是因为到服务器的距离吗? 那么流量管理器会是一个解决方案吗?但是,如果我使用微软登录,我看不到应该如何启用它。由于服务绑定(bind)到应用程序名称以进行身份​​验证。在这方面应该如何使用流量管理器

最佳答案

Is there some setting that can be set so the swap mechanism does not introduce this issue?

不确定这是否适用于您的情况,但有一个已知问题,即某些应用设置实际上可能导致交换问题。您是否定义了任何以 _EXTENSION_VERSION 结尾或以 WEBSITE_AUTH_ 开头的应用设置?如果是这样,请尝试删除它们,看看是否可以解决您遇到的问题。

Is there a way to improve the login/relogin flow, the users are complaining that the login is failing often. I cannot replicate it in other instances than during the swap. Can this be because of distance to the server?

我从来没有处理过这样的问题。您可以提供有关故障的更多详细信息,例如状态代码吗?您可以做的一件事是启用 Application Logging您应该能够获得有关刷新失败的详细信息。

Therefore would Traffic Manager be a solution? However, I cannot see how it should be enabled if I am using microsoft login. Since a service is bound to an application name for authentication. How should the Traffic Manager be used in this respect?

我认为实现此目的的方法是对流量管理器进行负载平衡的所有移动应用后端使用单个 Microsoft 帐户应用程序。配置的重定向 URL 需要使用在流量管理器中注册的通用主机名。

关于Azure 应用服务(移动)重新登录挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38504470/

相关文章:

Azure 服务总线 : No messages on queue, 仅请求

c# - azure 函数计时器触发器中的 TimerInfo 类有哪些具体细节?

python-3.x - Django Rest Framework 在 Azure 上非常慢

python - Azure Python Web 应用内部服务器错误

facebook - 在服务器端Azure移动应用程序上提供 "login_hint"

.net - 服务总线处置对象

asp.net-mvc - 如何启用 HTTP 压缩来压缩 JSON 文档

AZURE Web 应用服务计划和 AKS 集群可以在同一订阅中吗?

Azure 移动服务到应用服务的困惑

android - 用于推送移动服务的 SQL 数据库 Azure 收费