最近,我遇到了ADAL for .NET的以下行为,这种行为特定于此环境:Windows 10 +企业活动目录。
@RequestMapping(...)
public @ResponseBody MyPojo getMyPojo(@PathVariable("id") Integer id, @RequestBody MyOtherPojo) {
MyPojo myPojo = new MyPojo();
// do some business methods
return myPojo
}
使用...
authContext = new AuthenticationContext(authority);
...
var tokenResult = await authContext.AcquireTokenAsync(
resourceId,
clientId,
redirectUri,
new PlatformParameters(PromptBehavior.Auto, parentWindow));
我无法使用正确的帐户登录,因为ADAL库未显示登录窗口(在屏幕截图上),而是使用我当前登录到Windows 10的帐户(最终显然导致访问被拒绝错误,因为我登录到Windows的帐户不在我正在连接的Azure AD中。)
有趣的是,对于正在使用Windows 7 \ 8的同事,相同的代码可以正常工作。
那么,这里可能出现的问题是什么?
答案 0 :(得分:0)
PromptBehavior.Auto
将尝试使用活动令牌,但如果刷新令牌无效/过期或需要凭据,则会显示登录页面。您可能会因某种原因需要重新进行身份验证,并且系统会提示您再次登录缓存中的用户。如果您在Win 10设备上加入了域名,它将自动使用该用户。
您应该可以点击Use another account
按钮登录其他用户。或者,您可以使用PromptBehavior.Always
忽略缓存并允许您登录新用户。