Search code examples
asp.net-mvcopenidowinsteam

How to set OpenID url parameter in OWIN


I have this basic setup:

Http Request -> Hardware OpenWRT Router -> Apache -> IIS. Between Apache and IIS there's a simple mod_proxy config like:

<VirtualHost *:80>
    ServerAdmin me@mail.com
    ServerName steam.domain.com

    ProxyPass / http://192.168.1.9/ timeout=600 Keepalive=On
    ProxyPassReverse / http://192.168.1.9/
</VirtualHost *:80>

The application itself hosted on 192.168.1.9 IIS works flawlessly except for one thing - when I've followed the guide from website then I'm having my Steam OpenID return url set to 192.168.1.9 instead of steam.domain.com. Host is in the OpenID query string, so I suppose that it can be changed somehow?

Edit: The issue is when I click Steam button on login view I end up with SteamCommunity login screen with Sign In through Steam at 192.168.1.69 instead of Sign In through Steam at steam.domain.com as per picture: issue


Solution

  • The return url is build on the request launched when the user click on the link to authenticate himself via Steam:

    private string BuildReturnTo(string state)
    {
        return Request.Scheme + "://" + Request.Host +
            RequestPathBase + Options.CallbackPath +
            "?state=" + Uri.EscapeDataString(state);
    }
    

    In OpenIDAuthenticationHandler.cs.

    So I think that the problem is just in dev (I assume the website is still in dev cause of the ip address 192.168, but I know nothing about Hardware OpenWRT Router and mod_proxy).