Excel链接到强制重新authentication的JIRA问题

情况

试图从Excel 2013启动JIRA问题超链接将用户驱动到JIRA的login页面,因为用户具有活动的login会话,这是意外的。

链接格式示例 – > https://<subdomain>.atlassian.net/browse/<proj-#>

即使用户第一次login,选中“Keep me logged in”框,用户在下一次selectExcel中的JIRA链接时仍然必须重复此操作。

该URL追加参数&permission-violation=true

尝试debugging

  1. 将链接复制到剪贴板并直接粘贴到浏览器的URL栏中。 此方法不会生成权限冲突。 用户可以直接进入发行而不需要再次login。
  2. 尝试在不同的Office 2013应用程序中的链接。 使用MS Outlook 2013电子邮件中的相同链接不会生成权限违规。
  3. 浏览JIRApipe理页面以获取解决scheme。 找不到任何configuration的选项。
  4. testingFirefox和Chrome都设为默认浏览器。 问题依然存在。

任何build议来解决这个问题? 这对我们的最终用户来说是非常令人沮丧的。

问题

根据StackOverflow用户myroslav ,某些版本的Excel首先尝试使用不知道您的浏览器Cookie(即您的login会话)的Microsoft DLL来获取网页。 这是他的答案摘录:

如果会话cookie保护网站Hlink自然被redirect到login页面,并已达到HTML页面,并不能“理解”它打开它在外部浏览器。 请注意,它不会打开原始URL(预期行为),而是redirect的结果,即使它是302redirect。

他的完整答案可以在这里阅读。

解决scheme

目前,微软已经build议像Atlassian这样的单点login站点的公司应该解决这个问题 。 Atlassian的优先级列表上这样的解决scheme是很低的 。 与此同时,我们还是接受微软的解决scheme – 按照myroslav的指示修改registry,并接受Excelfunction的损失 – 或者修改我们的URL,使其不需要单点login用户validation。

解决方法

我正在使用Excel 2016和Chrome。 Taliesin的解决方法 ,在这个页面上的其他地方,对我来说不起作用,但可能对一些人有用。 这是下一个最好的解决方法:

 HYPERLINK("https://<subdomain>.atlassian.net/issues/?jql=id%20in%20("&<cell>&")", "link") 

用你的Atlassian子域replace<subdomain> ,用包含你的JIRA问题关键字的单元replace<subdomain> <cell>

此URL变体将打开一个search查询,查找与给定键匹配的问题。 它不会直接引起您的问题,但它至less提供了一个方便的链接,以便您可以到达要去的地方,这至less比在login页面上input您的凭据更好。

尝试重新启动浏览器并通过select保持login状态login到JIRA

似乎可以解决这个问题: https : //www.redmine.org/boards/1/topics/14287?r=40540

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \“Your OFFICE VERSION”\ Common \ Internet]“ForceShellExecute”= dword:00000001

解决方法

好。 所以我发现了一个解决方法。 请注意,这将通过利用JIRA自己的链接纠正行为以间接的方式纠正问题。 本质上,您可以通过向JIRA提供结构错误的URL来绕过安全问题。 然后,JIRA将修复该URL并将您redirect到正确的页面。

这里是结构https://<subdomain>.atlassian.net/browse/<proj-#> + /

请注意最后一个正斜杠 。 这不属于URL构造,但使用时将build立redirect,从而绕过安全违规。

如果你已经有了JIRA文件中的超链接,你可以使用这个简单的VBA代码子程序轻松更新这些超链接。

 Sub AppendJiraLinks() Dim c As Range Dim i As Integer For Each c In Selection.Cells If c.Hyperlinks.Count >= 1 Then For i = 1 To c.Hyperlinks.Count c.Hyperlinks(i).Address = c.Hyperlinks(i).Address & "/" Next i End If Next c End Sub 

注意这个代码可以被增强,但对我的目的来说工作正常。

Interesting Posts