6

我的代码使用:

WebAuthenticationResult WebAuthenticationResult = await
WebAuthenticationBroker.AuthenticateAsync( 
                                        WebAuthenticationOptions.None, 
                                        StartUri, 
                                        EndUri); 

就像Microsoft Web 身份验证代理示例

它曾经在我的桌面和平板电脑(Surface)上工作,但现在它不能在我的桌面上工作。它抛出异常

The process terminated unexpectedly. (Exception from HRESULT: 0x8007042B)

它适用于平板电脑和不同的 windows-8 桌面。

有什么建议会导致此异常吗?

4

2 回答 2

0

WebAuthenticationBroker.AuthenticateAsync 将 AuthHost.exe 进程作为应用进程的子进程启动,异常返回的 HRESULT 表明 AuthHost.exe 意外失败。启动时,AuthHost 会尝试从非 sso 容器中清除 cookie、内容和历史记录,如果失败,它会退出。另一方面,Windows 应用程序在沙箱中运行,具有一组不同于桌面应用程序的权限。因此 Internet Explorer 本身或执行 SSO 的桌面应用程序可能能够正常工作,但不允许 AuthHost 在启动时进行所需的清理。在我的情况下,运行该应用程序的用户是被授予对该文件夹的完全访问权限的组的一部分,但该用户本身没有直接文件访问权限。但是,组权限在应用程序沙箱中被剥夺了。在默认设置中,权限配置正确,应该不会出现这样的问题。但是,在某些情况下,用户将 Internet 临时文件移动到新位置,该位置可能具有稍微不同的文件访问权限集。该线程上的另一个响应表明删除和重新创建配置文件会有所帮助。此操作将 Internet Explorer 中的 Temporary Internet Files 设置重置为默认值,间接支持我的建议。

于 2015-02-26T00:55:34.507 回答
0

我不确定,但我认为 WebAuthBroker 需要在 UI 线程上调用,因为它试图以向您显示弹出窗口的方式更改您的 UI 的某些内容。

于 2013-01-08T00:57:57.840 回答