 <p>Ribbon.Invalidate doesn't mean the ribbon will not show. Invalidate function just tells the ribbon to invalidate and re-initialize the ribbon controls with their default/dynamic properties. </p> <p>I worked with few Add-ins where the clients wanted to hide the ribbon items if users cannot pass the authentication. So in such a case, I used "GetVisible" attribute in all of my Control and then I used this code</p> <pre><code>Sub GetVisible(control As IRibbonControl, ByRef Visible) On Error Resume Next Visible = shouldShowOrNot End Sub </code></pre> <p>shouldShowOrNot is a boolean variable, which I set in Ribbon Load to true if user passes the authentication. See the following image:</p> <p><img src="https://i.stack.imgur.com/hMjch.png" alt="Ribbon with Failed Authentication"></p> <p>Now the above image is a representation of Ribbon in case User has failed the authentication. There might be a better way to do it, but i found it to be the best way so far.</p> <p>Hope this helps, Vikas B</p>