ASP.Net MVC ADAL TokenCache忽略AfterAccess BeforeAccess

时间:2017-10-20 22:38:39

标签: c# asp.net-mvc azure adal

该应用程序已经运行了好几个月,但昨天我的开发计算机有问题(秋季创建者更新)所以检查了我的笔记本电脑上的代码并开始工作。但是现在我遇到的问题是应用程序没有将令牌写入缓存数据库。添加一些断点到

void BeforeAccessNotification(TokenCacheNotificationArgs args)
void AfterAccessNotification(TokenCacheNotificationArgs args)
void BeforeWriteNotification(TokenCacheNotificationArgs args)

方法我可以看到它们永远不会被击中。我的代码与此处的示例代码相同(第14行除外,名称不同)

https://github.com/Azure-Samples/active-directory-dotnet-webapp-groupclaims/blob/master/WebApp-GroupClaims-DotNet/Utils/TokenDbCache.cs

我的Startup.Auth.cs与下面相同(我复制并粘贴到测试中)

https://github.com/Azure-Samples/active-directory-dotnet-webapp-groupclaims/blob/master/WebApp-GroupClaims-DotNet/App_Start/Startup.Auth.cs

我有另一个使用几乎完全相同的身份验证的应用程序,它工作正常,我可以在Startup.Auth中看到它点击这一行

AuthenticationResult result = await
authContext.AcquireTokenByAuthorizationCodeAsync(
context.Code, new Uri(HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Path)), credential, ConfigHelper.GraphResourceId);

然后它运行BeforeAccessNotification,BeforeWriteNotification,AfterAccessNotification并且运行良好。

但是在非工作应用程序中,即使一切看起来都应该如此,它也不会运行上述方法。

enter image description here

有什么想法吗?我完全失去了。

1 个答案:

答案 0 :(得分:0)

感谢您的回复,问题变成了关键=" ida:GraphUrl"在我的web.config被删除(不知道如何)所以" ConfigHelper.GraphResourceId"在

AuthenticationResult result = await
authContext.AcquireTokenByAuthorizationCodeAsync(
context.Code, new Uri(HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Path)), credential, ConfigHelper.GraphResourceId);

是null,因为我假设

而忽略了它
catch (AdalException ex)

会抓住这个。