Visual studio Visual Studio OWIN OAuth提供程序保持身份验证

Visual studio Visual Studio OWIN OAuth提供程序保持身份验证,visual-studio,oauth-2.0,owin,azure-devops,azure-devops-rest-api,Visual Studio,Oauth 2.0,Owin,Azure Devops,Azure Devops Rest Api,我目前正在使用VSTS应用程序,但每次我尝试使用Visual Studio帐户登录时,它都会再次显示授权对话框。我每次都必须重新授权我的应用程序,这会在注册应用程序的Visual Studio配置文件上不断生成授权 我正在使用VisualStudio的OwinOauthProvider。 是否有任何方法可以将提供程序配置为只授权一次,然后将授权用于后续登录?或者任何其他建议,从我的应用程序创建单一登录并连接到VSTS Api的 更新: 有关此问题的其他链接: (如果您遇到相同的问题,请投

我目前正在使用VSTS应用程序,但每次我尝试使用Visual Studio帐户登录时,它都会再次显示授权对话框。我每次都必须重新授权我的应用程序,这会在注册应用程序的Visual Studio配置文件上不断生成授权

我正在使用VisualStudio的OwinOauthProvider。

是否有任何方法可以将提供程序配置为只授权一次,然后将授权用于后续登录?或者任何其他建议,从我的应用程序创建单一登录并连接到VSTS Api的

更新:

有关此问题的其他链接:


(如果您遇到相同的问题,请投赞成票)

有访问令牌和刷新令牌,访问令牌将在一小时后过期,但刷新令牌将在一年后过期

因此,您可以根据刷新令牌刷新访问令牌,而不是让用户再次授权

根据这条线索(),克里斯托弗说:

显然,我们必须尊重用户撤销以前的 授权

更新:


我分析了整个工作流,也就是通过设计,当您请求VSTS外部登录时,需要接受页面,您无法通过代码或其他方式控制它

有访问令牌和刷新令牌,访问令牌将在一小时后过期,但刷新令牌将在一年后过期

因此,您可以根据刷新令牌刷新访问令牌,而不是让用户再次授权

根据这条线索(),克里斯托弗说:

显然,我们必须尊重用户撤销以前的 授权

更新:


我分析了整个工作流,也就是通过设计,当您请求VSTS外部登录时,需要接受页面,您无法通过代码或其他方式控制它

您的应用程序的详细工作流程是什么?很容易复制。我已在app.vsaex.visualstudio.com上注册了我的应用程序,并创建了一个新的空MVC项目,其中包含个人用户帐户。添加了Owin.Security.Providers.VisualStudio作为外部登录提供程序。每次我“登录”时,它都要求再次授权我的应用程序。所有这些授权也显示在我的vsaex配置文件中。例如,如果我使用Facebook,您只需授权一次,它将一直保持授权状态,直到我的访问过期或被撤销。这些OAuth的操作不同,对于VSTS OAuth,每个外部登录都需要接受。您的应用程序的详细工作流程是什么?很容易复制。我已在app.vsaex.visualstudio.com上注册了我的应用程序,并创建了一个新的空MVC项目,其中包含个人用户帐户。添加了Owin.Security.Providers.VisualStudio作为外部登录提供程序。每次我“登录”时,它都要求再次授权我的应用程序。所有这些授权也显示在我的vsaex配置文件中。例如,如果我使用Facebook,你授权一次,它将一直保持授权状态,直到我的访问过期或被撤销。这些OAuth的操作不同,对于VSTS OAuth,每个外部登录都需要接受。我已经阅读了线程,谢谢。但我不明白这有什么关系?请参阅我在第一篇文章中的评论。@WesleyvanHeije关系是您正在使用VSTS OAuth,每次请求外部登录时都需要“接受”页面。谢谢更新。我希望更好地利用refreshtoken,这样我就不必每次都浏览accept页面。特别是因为refreshtoken是有效的。如果不是;我必须再次接受,这是有道理的,但是授权不应该在app.vsaex?@WesleyvanHeije的我的个人资料中“相加”。如果你只需要请求资源,你可以将访问和刷新令牌存储到数据库,并将本地用户帐户链接到该记录。另一方面,你可以提交一个用户声音来解释你的需求。是的,这就是我目前正在做的。但我更喜欢单一登录体验(比如外部Facebook提供商),而不是本地登录。我查过Uservoice,它显然已经被记录了。我已经读过了,谢谢。但我不明白这有什么关系?请参阅我在第一篇文章中的评论。@WesleyvanHeije关系是您正在使用VSTS OAuth,每次请求外部登录时都需要“接受”页面。谢谢更新。我希望更好地利用refreshtoken,这样我就不必每次都浏览accept页面。特别是因为refreshtoken是有效的。如果不是;我必须再次接受,这是有道理的,但是授权不应该在app.vsaex?@WesleyvanHeije的我的个人资料中“相加”。如果你只需要请求资源,你可以将访问和刷新令牌存储到数据库,并将本地用户帐户链接到该记录。另一方面,你可以提交一个用户声音来解释你的需求。是的,这就是我目前正在做的。但我更喜欢单一登录体验(比如外部Facebook提供商),而不是本地登录。我查过Uservoice,它显然已经被记录了。