Refactored to share common logic found in AuthAttribute

Just a minor update to share existing code in AuthAttribute, important so that the redirect query string still gets appended (to be redirected back to protected razor page after login).

Not sure if you'd like to move the new static helper method `AuthenticateAttribute.DoHtmlRedirect` somewhere else more central, I just left it in the original class for now.

Also, the existing auth attribute code only used the explicit redirect url, or fallback to the auth service setting. In your new razor code you have a few more additional fallbacks. I left those as is, but both these sets of fallbacks might want to be centralized by being moved to the DoHtmlRedirect method too.