2017-05-13 28 views
0

我对Identityserver和owin很新。这是我的问题。 我已经通过使用identityserver3作为我的身份验证服务创建了一个asp.net MVC应用程序。 我想访问身份服务器登录内的请求URI。我使用MVC视图定制了登录页面(通过使用IdentityServer3.Samples)。获取身份识别服务器登录页面的请求Uri

这是流程。以下URL需要身份验证才能继续。 https://www.myapp.com/customer/profile 当有人导航到该URL时,它会自动重定向到身份登录页面https://www.myapp.com/identity/login?signin=2207991967207c8e306a8c08b3abd3b8。提供正确的用户凭证后,它将正确地重定向回请求URL,这已由Identityserver处理。

在我的情况下,我在同一个identityserver登录页面内有另一个链接,它应该重定向到我自己的链接,请求URL https://www.myapp.com/customer/profile作为查询字符串参数。我怎样才能做到这一点?基本上,我想要在登录页面中获取请求URL。

回答

0

你应该能够通过

var env = Request.GetOwinContext().Environment; 
var msg = env.GetSignInMessage(id); // id from querystring 
var returnUrl = msg.ReturnUrl; 

(从login controller的例子回购拍摄)

+0

没有它不工作,有我得到不出我所料访问返回URL。它就像'https://identity.codefox.com/identity/connect/authorize?client_id=app_central&redirect_uri=https%3A%2F%2Fcentral.codefox.com&response_mode=form_post&response_type=code%20id_token&scope=openid%20profile%20read%20write% 20offline_access&状态= OpenIdConnect.AuthenticationProperties%3DktxDeOqwyWvZhx1JKURF0e8yAMBpeU36_qMNj-IB-hFNOF6HmN0rUPh3PjnRTQrHhy1KMd0Wr9eaOvKUoOEqAmBpqenO6G2GhtslpRGb7UTsYXiuaOkRCEUaqn5Be_EMYsWhVga00DUOE4Aki1pNVEdAwQpwhvKLs' – Daybreaker

+0

我要得到确切的网址'的https:// www.myapp.com /客户/ profile' – Daybreaker

+0

IdentityServer不能nessecarily知道什么是用户最初请求,因为这几个步骤回在OAuth流程中。 –

相关问题