C# / .Net

ASP.NET Core – Links don’t work from office/word document to SSO site.

By November 10, 2021No Comments

Introduction

Here is an unusual issue.

You have a website. Its address is say… https://mywebsite.com/

You email this link to somebody, and it works. You share this link in a chat. it works.

You put this link into a word or excel document, and all of a sudden, you see this:

Now, you are puzzled. Why are my hyper-links not working inside of a word or excel document? What makes them different??

Supporting Documentation

A colleague of mine had actually experienced this issue, and shared some Microsoft documentation with me.

Issues when you click hyperlink to SSO Web site in a document

Well, at least its good news that this issue isn’t just me, right?

It appears the cause, is because office tries to directly bind to the resource using Microsoft’s hyper-link library, which causes very weird side-effects.

The Work Around

Based on the documentation, it appears office attempts to insert its own broken cookie into the SSO-enabled website. or- at least, that is what I gathered.

Well, turns out, I couldn’t find a good solution. But, I did find A solution… based on THIS MICROSOFT ARTICLE

Essentially, I found a place to hook into remote authentication failures. My solution was simply to redirect the user to the home page. It works….

If you find the ACTUAL solution to this problem, please let me know.

 services
                .AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
                .AddMicrosoftIdentityWebApp(options =>
                {
                    Configuration.Bind("AzureAd", options);
                    options.Events ??= new OpenIdConnectEvents();
                    options.Events.OnRemoteFailure += (RemoteFailureContext options) =>
                    {
                        //Redirect the user to the home page.
                        options.HttpContext.Response.Redirect("/");

                        //Stop further processing.
                        options.HandleResponse();

                        return Task.CompletedTask;
                    };
                });

Leave a Reply

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 85 other subscribers

%d bloggers like this: