• Skip to main content
  • Skip to primary sidebar

Technical Notes Of
Ehi Kioya

Technical Notes Of Ehi Kioya

  • About
  • Contact
MENUMENU
  • Blog Home
  • AWS, Azure, Cloud
  • Backend (Server-Side)
  • Frontend (Client-Side)
  • SharePoint
  • Tools & Resources
    • CM/IN Ruler
    • URL Decoder
    • Text Hasher
    • Word Count
    • IP Lookup
  • Linux & Servers
  • Zero Code Tech
  • WordPress
  • Musings
  • More
    Categories
    • Cloud
    • Server-Side
    • Front-End
    • SharePoint
    • Tools
    • Linux
    • Zero Code
    • WordPress
    • Musings
Home » SharePoint » Sign In As Different User In SharePoint 2013

Sign In As Different User In SharePoint 2013

By Ehi Kioya 1 Comment

The Problem

SharePoint developers and IT pros are familiar with the “sign in as different user” menu option in SharePoint 2010. However, in Microsoft SharePoint Server 2013, you will notice that this menu option is missing.

Within the SharePoint community, a number of reasons have been suggested as to why Microsoft decided to remove this menu option.
Some of the reasons are:

  • “Sign in as different user” does not clear cookies and session variables.
  • Since external applications generally run under the currently logged in Windows user account and not the account logged in to SharePoint, documents opened in these applications often end up being saved with an unexpected user account.
  • Cache conflicts occur often. Since the cache for one user wouldn’t (and shouldn’t) match that for another user, pages may display data and content specific to a previously logged in user.

For those unfamiliar with this menu option, here’s how it looks in SharePoint 2010:

sign in as a different user sharepoint 2010

In this article, I have logged all the solutions and workarounds to this problem that I have found so far. Feel free to add your solution in the comments section.

Solution #1

Access the SharePoint site by using the the URL as http://siteurl/_layouts/closeConnection.aspx?loginasanotheruser=true

Important:
This option uses an unsupported browser feature which is unreliable and causes other issues.
Currently this option does not work in IE 10 and Safari.

Reference: Microsoft KB article.
 

Solution #2

Start Internet Explorer by using the Run as different user option, and then go to the SharePoint site.

Note:
The Run as different user option is visible if you hold the Shift key when you right-click a program icon.

sign in as different user ie

Solution #3

This is similar to Solution #2 but saves you a few clicks by using a desktop shortcut.

  • Create a shortcut to your favorite browser. In Windows and for Internet Explorer, do this by navigating to C:\Program Files (x86)\Internet Explorer and dragging iexplore.exe to the desktop (by default this creates a shortcut). For non 64 bit Windows, go to C:\Program Files\Internet Explorer instead.
  • Right click your new shortcut and select “Properties”.
  • Modify the shortcut target by adding runas and the desired user account to the beginning of the path. Change the target to (replace user@domain with your test acct):
    %systemroot%\System32\runas.exe /user:user@domain “%ProgramFiles(x86)%\Internet Explorer\iexplore.exe” or for non 64 bit Windows: %systemroot%\System32\runas.exe /user:user@domain “%ProgramFiles%\Internet Explorer\iexplore.exe”
  • Click OK to save changes.

Double-click your new shortcut and you’ll get a prompt to enter a password. You won’t see anything on the screen as you type, so just go on faith. Type your password and hit enter.

Solution #4

This solution uses JavaScript as a Bookmarklet.

To install this fix simply drag the link below to your favorites bar to create a bookmarklet that will work on any SharePoint 2013 site. You could also just right-click on the link in Internet Explorer and press Add to favorites.

Whenever you want to log in as another user simply click your bookmark and you’ll be redirected to this Windows Authentication dialog so that you may log in as you would expect.

Here’s The Link: Sign In As Different User
Note: It only works from within a SharePoint site.

Here’s the JavaScript code for the above link:

javascript:
(
    function()
    {
        var ctx=new SP.ClientContext.get_current();
        var web=ctx.get_web();
        ctx.load(web,'Url');
        ctx.executeQueryAsync(Function.createDelegate(this,success),Function.createDelegate(this,failed));

        function success(sender,args)
        {
            var url=web.get_url();
            window.location=url+'/_layouts/closeConnection.aspx?loginasanotheruser=true';
        };

        function failed(sender,args)
        {
            alert('Error\n'+args.get_stackTrace());
        };
    }
)();

Solution #5

This solution adds a custom action to the SharePoint standard menu. This is done in Visual Studio and entirely in the Elements.xml file and deployed as a compiled .WSP file.

If you are unfamiliar with manipulating custom actions, or if you want to add triggers etc, or if you want to do this from C# code within the feature activated event, please have a look at my previous articles about custom actions: This one is about adding a custom action to the Edit Control Block and this one is about adding a custom action to the SharePoint Ribbon. With guidance from those links, you can easily convert this xml code to “debuggable” C# code.

Here’s the Elements.xml code:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction
    Id="MyLoginDifferentUser"
    GroupId="PersonalActions"
    Location="Microsoft.SharePoint.StandardMenu"
    Sequence="1000"
    Title="Sign in as Different User">
    <UrlAction Url="/_layouts/closeConnection.aspx?loginasanotheruser=true"/>
  </CustomAction>
</Elements>

Solution #6

NOTE: This solution involves modifying files in the hive and is not generally good practice. Not recommended by Microsoft either. I only recommend something like this if you’re playing on your DEV machine. It is presented here as a quick (and dirty!) solution.

Read on all the same… You might find the knowledge quite useful.

Locate and open the following file in a text editor:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\CONTROLTEMPLATES\Welcome.ascx (create a backup first).

Add the following element before the existing “ID_RequestAccess” element:

<SharePoint:MenuItemTemplate runat="server" ID="ID_LoginAsDifferentUser"
 Text="<%$Resources:wss,personalactions_loginasdifferentuser%>"
 Description="<%$Resources:wss,personalactions_loginasdifferentuserdescription%>"
 MenuGroupId="100"
 Sequence="100"
 UseShortId="true"
 />

Save the file. Done. Now, the “Sign in as different user” menu option will be displayed.

Final Note: The sign in as different user functionality is not meant to be used as a security feature. This feature allows users which have more than one AD account to quickly login with a different account to SharePoint – but it does not guarantee that no artifacts from the previous user remain. If you have to guarantee that one user cannot see data from a different user you have to logoff/logon in Windows. Don’t use the Sign in as a different user.

Found this article valuable? Want to show your appreciation? Here are some options:

  1. Spread the word! Use these buttons to share this link on your favorite social media sites.
  2. Help me share this on . . .

    • Facebook
    • Twitter
    • LinkedIn
    • Reddit
    • Tumblr
    • Pinterest
    • Pocket
    • Telegram
    • WhatsApp
    • Skype
  3. Sign up to join my audience and receive email notifications when I publish new content.
  4. Contribute by adding a comment using the comments section below.
  5. Follow me on Twitter, LinkedIn, and Facebook.

Related

Filed Under: SharePoint Tagged With: JavaScript, SharePoint

About Ehi Kioya

I am a Toronto-based Software Engineer. I run this website as part hobby and part business.

To share your thoughts or get help with any of my posts, please drop a comment at the appropriate link.

You can contact me using the form on this page. I'm also on Twitter, LinkedIn, and Facebook.

Reader Interactions

Comments

  1. Christian says

    February 7, 2018 at 8:25 am

    Great post, but how can you use this for example to jump to the site contents or to the permissions of the site? For instance permissions of the site:
    javascript:!function(){
    var a=window.location.href,b=encodeURIComponent(a);
    a.indexOf(“Source=”)!==-1&&(b=window.location.href.split(“?”)[1].split(“&”)[0].replace(“Source=”,””));
    var c=”//”+window.location.hostname+”/_layouts/15/user.aspx;
    window.location.href=c}();

    This is not working. How to change it?

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

23,569
Followers
Follow
30,000
Connections
Connect
14,568
Page Fans
Like
  • Recently   Popular   Posts   &   Pages
  • Actual Size Online Ruler Actual Size Online Ruler
    I created this page to measure your screen resolution and produce an online ruler of actual size. It's powered with JavaScript and HTML5.
  • Fix For “Function create_function() is deprecated” In PHP 7.2 Fix For "Function create_function() is deprecated" In PHP 7.2
    As of PHP 7.2 create_function() has been deprecated because it uses eval(). You should replace it with an anonymous function instead.
  • How To Install PHP Packages Without Composer How To Install PHP Packages Without Composer
    This article shows how to bypass the Composer barrier when installing Composer-dependent PHP packages. Great shortcut for PHP enthusiasts!
  • About
  • Contact

© 2022   ·   Ehi Kioya   ·   All Rights Reserved
Privacy Policy