When using ASP.Net OWIN/Katana to set up single sign-on using WSFederation, there exists WReply and CallbackPath properties.
In example projects, these appear to have very similar values when configured within Startup.Auth, e.g.:
new WsFederationAuthenticationOptions() {
CallbackPath = "/WsFed-Foo",
Wreply = "https://example.com/WsFed-Foo"
Looking at the docs, I see this:
CallbackPath must be set to match or cleared so it can be generated dynamically. This field is optional. If not set then it will be generated from the current request and the CallbackPath.
I appreciate that CallbackPath is optional, but if it needs to match WReply, then why does the Katana have it when it is computed automatically if omitted? Is there a situation where it might be different to WReply?
Maybe what Tratcher posted in Github (https://github.com/aspnet/Security/issues/1645) answers your question?
In case it does, his reply there to the "WsFed confusion between Wreply and CallbackPath #1645" issue was:
I added emphasys to what I think may answer your first question. Regarding your second question, there doesn't seem to be a situation where it makes sense for Wreply and CallbackPath to be incompatible. (Technically, they are always different because CallbackPath - unlike Wreply - is not a full URL.)