Asp.net web表单中的DotNetOpenAuth和ReturnToUrl

Asp.net web表单中的DotNetOpenAuth和ReturnToUrl,asp.net,dotnetopenauth,Asp.net,Dotnetopenauth,我正在使用带有url重写的asp.net 在页面加载中,我有以下代码: OpenIdLogin1.ReturnToUrl = @"~/Login" 当我登录并返回呼叫页面时,我收到以下错误消息: 登录失败:openid.return\u to参数()与实际URL()不匹配 如何将实际url更改为虚拟url 任何帮助都将不胜感激。在调用GetResponse时,传入一个HttpRequestInfo对象,该对象使用希望DotNetOpenAuth看到的URL作为传入URL进行初始化。在调用Get

我正在使用带有url重写的asp.net

在页面加载中,我有以下代码:

OpenIdLogin1.ReturnToUrl = @"~/Login"
当我登录并返回呼叫页面时,我收到以下错误消息:

登录失败:openid.return\u to参数()与实际URL()不匹配

如何将实际url更改为虚拟url


任何帮助都将不胜感激。

在调用
GetResponse
时,传入一个
HttpRequestInfo
对象,该对象使用希望DotNetOpenAuth看到的URL作为传入URL进行初始化。

在调用
GetResponse
时,传入一个
HttpRequestInfo
对象,该对象使用希望DotNetOpenAuth看到的URL作为传入URL进行初始化。

我解决了问题:

var openId = new OpenIdRelyingParty();
HttpContext httpContext = HttpContext.Current;

var headers = new WebHeaderCollection();
foreach (string header in httpContext.Request.Headers)
{
    headers.Add(header, httpContext.Request.Headers[header]);
}

string requestUrl = string.Format("http://localhost:12345/Login/{0}",
                                   httpContext.Request.Url.Query);

var requestInfo = new HttpRequestInfo(httpContext.Request.HttpMethod,
                                        new Uri(requestUrl),
                                        httpContext.Request.RawUrl, headers,
                                        httpContext.Request.InputStream);

var response = openId.GetResponse(requestInfo);
我解决了这个问题:

var openId = new OpenIdRelyingParty();
HttpContext httpContext = HttpContext.Current;

var headers = new WebHeaderCollection();
foreach (string header in httpContext.Request.Headers)
{
    headers.Add(header, httpContext.Request.Headers[header]);
}

string requestUrl = string.Format("http://localhost:12345/Login/{0}",
                                   httpContext.Request.Url.Query);

var requestInfo = new HttpRequestInfo(httpContext.Request.HttpMethod,
                                        new Uri(requestUrl),
                                        httpContext.Request.RawUrl, headers,
                                        httpContext.Request.InputStream);

var response = openId.GetResponse(requestInfo);

我这样做了,但它仍然返回到同一个url。我这样做了,但它仍然返回到同一个url。所以我看到这正是我在回答中给出的,你应该做的。为什么你评论说它不起作用,然后贴出你自己的答案说它起作用了?所以我知道这正是我在回答中给出的,你应该做的。为什么你评论说它不起作用,然后发布你自己的答案说它起作用了?