DotNetOpenAuth getting return_To url as the provider

Posted by Jeff on Stack Overflow See other posts from Stack Overflow or by Jeff
Published on 2010-04-30T22:11:39Z Indexed on 2010/04/30 22:17 UTC
Read the original article Hit count: 192

Filed under:

I have a provider that I'm upgrading from version 2 to version 3. basically a user comes to one of our sites and we say "if you don't have an openID sign up with this one" They click that and are sent to our in house provider what signs them up for an account and has to verify their email address.

In the link I send via Email I included the return to url . This way when they click the link to verify their email (sometimes up to a week later) they are sent to our page that knows to send them back to the returnTo to login.

I could not find a good way to do this in version 2 so I used a hack. Sadly this hack broke in version 2 so I'm completely stumped as to how to find the login page url that is the return_To

Note: I need the full URL not just the domain.

old hack:

if (ProviderEndpoint.PendingAuthenticationRequest != null)
        {
            req =
ProviderEndpoint.PendingAuthenticationRequest.ToString();

            int startpos =  req.LastIndexOf("CheckIdRequest.ReturnTo =
'");
            startpos += "CheckIdRequest.ReturnTo = '".Length;
            int endpos = req.LastIndexOf("token=") - startpos-1;
            if (endpos > 0)
            {
                req = req.Substring(startpos, endpos);
            }
            else
            {
                log.Fatal("Missing token in url" +
ProviderEndpoint.PendingAuthenticationRequest.ToString());
                return "~/";
            }
            req = req.Replace("&internalLogin=True", "");
            req = req.Replace("?internalLogin=True&", "?");
            req = req.Replace("?internalLogin=True", "");
        } 

© Stack Overflow or respective owner

Related posts about dotnetopenauth