Enable Outlook Web Add-in only on the Web - outlook

I developed an Outlook web-based add-in. To install it, I added the manifest file from the "Manage add-ins" page in OWA: https://msdn.microsoft.com/en-us/library/office/fp142256.aspx. The add-in is showing up in both Outlook Web App and Windows Desktop App.
Is there a setting or code change need to be done to make the add-in available only in the Web App.

We have no such capability - we'd like the platform to provide users with consistent experience regardless of Outlook client/platform they use. Would you mind sharing why would you like your add-in to show up in OWA but not in desktop Outlook?

I guess now it's possible. If you insert VersionOverrides in the manifest file an leave it empty, then the outlook client will not show the app but the outlook on the web client will show the app.
Example:
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<Requirements>
<bt:Sets DefaultMinVersion="1.3">
<bt:Set Name="Mailbox" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="functionFile" />
<ExtensionPoint xsi:type="MessageReadCommandSurface">
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
Don't forget the namespace:
xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides"

Related

Hiding Incompatible Extensions in a Private Gallery

We have a private Extension Gallery within the company, that houses a variety of extensions (e.g. home-grown extensions, and those from VersionOne).
These extensions are just loaded into a directory on the server, which contains the atom.xml file for Visual Studio to read - this file is manipulated by hand whenever a new extension is uploaded.
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text">Private Extension Gallery</title>
<id>uuid:874a62b3-c36c-4443-aeb9-498e4c6e589d;id=1</id>
<updated>2013-12-06T12:00:00Z</updated>
<!-- Version One TFS Policies -->
<entry>
<id>CC777458-29A8-4B89-B95A-416BE5F6198A</id>
<title type="text">VersionOne TFS Checkin Policy For 2012</title>
<summary type="text">TFS Checkin policy from VersionOne for Visual Studio 2012. Requires code commits to contain a VersionOne identifier</summary>
<published>2015-07-29T08:22:00Z</published>
<updated>2015-07-29T08:22:00Z</updated>
<author>
<name>VersionOne</name>
</author>
<category term="" />
<link rel="icon" href="Resources/VersionOne.ico" />
<content type="application/octet-stream" src="VersionOne.Integration.Tfs.Policy.VS2012.vsix" />
<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/developer/vsx-syndication-schema/2010">
<Id>CC777458-29A8-4B89-B95A-416BE5F6198A</Id>
<Version>1.2</Version>
</Vsix>
</entry>
<entry>
<id>9D7E0DF5-0A4D-4B43-9D73-4AD3F83260FA</id>
<title type="text">VersionOne TFS Checkin Policy For 2013</title>
<summary type="text">TFS Checkin policy from VersionOne for Visual Studio 2013. Requires code commits to contain a VersionOne identifier</summary>
<published>2015-07-29T08:22:00Z</published>
<updated>2015-07-29T08:22:00Z</updated>
<author>
<name>VersionOne</name>
</author>
<category term="" />
<link rel="icon" href="Resources/VersionOne.ico" />
<content type="application/octet-stream" src="VersionOne.Integration.Tfs.Policy.VS2013.vsix" />
<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/developer/vsx-syndication-schema/2010">
<Id>9D7E0DF5-0A4D-4B43-9D73-4AD3F83260FA</Id>
<Version>1.2</Version>
</Vsix>
</entry>
<entry>
<id>VersionOne.Integration.Tfs.Policy.Deployment.VS2015.50865266-cdad-4160-bb0b-b4090eaaf222</id>
<title type="text">VersionOne TFS Checkin Policy For 2015</title>
<summary type="text">TFS Checkin policy from VersionOne for Visual Studio 2015. Requires code commits to contain a VersionOne identifier</summary>
<published>2015-07-29T08:22:00Z</published>
<updated>2015-07-29T08:22:00Z</updated>
<author>
<name>VersionOne</name>
</author>
<category term="" />
<link rel="icon" href="Resources/VersionOne.ico" />
<content type="application/octet-stream" src="VersionOne.Integration.Tfs.Policy.VS2015.vsix" />
<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/developer/vsx-syndication-schema/2010">
<Id>VersionOne.Integration.Tfs.Policy.Deployment.VS2015.50865266-cdad-4160-bb0b-b4090eaaf222</Id>
<Version>1.2</Version>
</Vsix>
</entry>
<!-- END Version One TFS Policies -->
</feed>
The issue with this setup, is that when multiple versions of an extension exist (for different visual studio installations), you need to create multiple entries in the atom.xml to house these. When viewing this gallery in Visual Studio, these extensions appear in the list, even though they are not compatible with the VS version.
Is there any way to configure the atom.xml so that is will only serve up extensions that are compatible with the version of Visual Studio that you are viewing the gallery from?
I'm seeing the same thing for the private gallery at my company. Doing a little digging with .NET Reflector shows that extensions from the Visual Studio gallery are handled differently from Atom Feed extensions.
As far as I can tell, the extension VS compatibility information (version and SKU) within the .VSIX file isn't extracted until downloaded (you'll notice that if you try to install your VS2015 extension on VS2013 it will fail if the required versions are exclusive). I'm guessing the Visual Studio gallery extracts the compatibility information when you upload the extension, and this info is used to filter entries in the Extension Manager.
Long story short, extensions specified in the Atom Feed xml have no mechanism for providing VS compatibility info prior to download. I think this would require a change to the vsx-syndication-schema (http://schemas.microsoft.com/developer/vsx-syndication-schema/2010) and obviously a change to the Extension Manager code. I'm planning on entering this on microsoft.connect.com.

Basic Authentication on IIS Express

I've searched for a while now but I can't seem to find the answer. There are ways of disabling/enabling anonymous and windows authentication. Does anyone know how to enable basic authentication on IIS Express (8.0) in Visual Studio 2013?
Update ApplicationHost.config
In the the ApplicationHost.config file, find the following nodes and update the values:
<sectionGroup name="authentication"&gt
<basicAuthentication enabled="false" /> <!-- set to false -->
</sectionGroup&gt
<!-- ... -->
<authentication&gt
<section name="basicAuthentication" overrideModeDefault="Allow" /> <!-- set to allow -->
</authentication&gt
Locate ApplicationHost.config
VS 2015 and above (per Joost's answer):
sln_folder/.vs/applicationhost.config
VS 2013 and below:
%UserProfile%\Documents\IISExpress\config\applicationhost.config
As far as I know, there is no way to enable it for only one project.
An additional heads up, in Visual Studio 2015, the location of the applicationhost.config file that is actually being used is inside a folder called .vs inside your solution folder. The one in your user profile is not being used
Here are slightly more details than the previous answer had:
%USERPROFILE%\Documents\IISExpress\config\applicationhost.config:
<basicAuthentication enabled="true" />
In the same file: set
<anonymousAuthentication enabled="false" userName="" />
If you are not using domain test accounts, create a local user account with the password for the test login.

Browser Link Dashboard on Visual Studio 2013 RC

I installed Visual Studio 2013 RC on Windows 7. I want to work with Browser Link Dashboard. But It isn't working. It shows that No Browsers Connected in the Refresh link. What should I do? Please Help
to me what worked
<system.webServer>
<handlers>
<add name="Browser Link for HTML" path="*.html" verb="*"
type="System.Web.StaticFileHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
resourceType="File" preCondition="integratedMode" />
</handlers>
</system.webServer>
You need to be debugging a project that includes the right HttpModule for Browser link to work.
It is mentioned in this post.
An MVC project and Web forms will include the HttpModule that inserts the required JavaScript code into your pages for Browser link to work.
You can check that the bottom of your page have the following (view source):
<!-- Visual Studio Browser Link -->
<script type="text/javascript" src="/__vwd/js/artery"></script>
<!-- End Browser Link -->
An empty ASP.NET project does not work out of the box.
Copying the following from an MVC project into the web.config of an empty ASP.NET project will insert the magic JavaScript, but it will also stop your page from displaying. Not sure how to just get the HttpModule that is needed and not the MVC view blocking. Visual studio will report that the browser is connected though.
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>

How do I deploy a VS2010 Web Site (Razor) to IIS7 on Windows Server 2008?

I've created a new Application that points to the files. It is running in ASP.NET 4.0 Integrated App Pool.
The files are just a couple of CSHTML files and some CSS/Javascript.
When the files were HTML I was able to hit them just fine. Now that they are cshtml, I get
This type of page is not served
when I try to hit the Directory/File.cshtml in a browser.
I usually write MVC3 apps, but this is just a simple 2 page site that needs to be up. I'm not familiar with deployment of these types of projects. Any advice would be helpful.
My web.config is simple and looks as follows:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.webServer>
<defaultDocument enabled="true">
<files>
<add value="MyFile.cshtml"/>
</files>
</defaultDocument>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Thanks in advance for your help!
To fix this, install the "ASP.NET MVC 3 (Visual Studio 2010)" package using the "Web Platform Installer" (http://www.microsoft.com/web/downloads/platform.aspx).

IIS Express Windows Authentication

I'm trying to use IIS Express with VS2010 to host a silverlight application. I modified my applicationhost.config file to allow for modification of the proper configuration settings. I have the following in my web.config:
<location path="">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
I am not being authenticated and my domain service call returns a null record as the user. I was able to get this to work after installing VS2010 SP1 BETA but I'm trying to get this to work with only IIS Express.
How do I enable Windows Authentication to work with IIS Express. Is there a configuration setting that I am missing?
Visual Studio 2010 SP1 and 2012 added support for IIS Express eliminating the need to edit angle brackets.
If you haven't already, right-click a web-flavored project and select "Use IIS Express...".
Once complete, select the web project and press F4 to focus the Properties panel.
Set the "Windows Authentication" property to Enabled, and the "Anonymous Authentication" property to Disabled.
I believe this solution is superior to the vikomall's options.
Option #1 is a global change for all IIS Express sites.
Option #2 leaves development cruft in the web.config.
Further, it will probably lead to an error when deployed to IIS 7.5 unless you follow the "unlock" procedure on your IIS server's applicationHost.config.
The UI-based solution above uses site-specific location elements in IIS Express's applicationHost.config leaving the app untouched.
More information here:
http://msdn.microsoft.com/en-us/magazine/hh288080.aspx
option-1:
edit \My Documents\IISExpress\config\applicationhost.config file and enable windowsAuthentication, i.e:
<system.webServer>
...
<security>
...
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
...
</security>
...
</system.webServer>
option-2:
Unlock windowsAuthentication section in \My Documents\IISExpress\config\applicationhost.config as follows
<add name="WindowsAuthenticationModule" lockItem="false" />
Alter override settings for the required authentication types to 'Allow'
<sectionGroup name="security">
...
<sectionGroup name="system.webServer">
...
<sectionGroup name="authentication">
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
...
<section name="windowsAuthentication" overrideModeDefault="Allow" />
</sectionGroup>
</sectionGroup>
Add following in the application's web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</configuration>
Below link may help:
http://learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/
After installing VS 2010 SP1 applying option 1 + 2 may be required to get windows authentication working. In addition, you may need to set anonymous authentication to false in IIS Express applicationhost.config:
<authentication>
<anonymousAuthentication enabled="false" userName="" />
for VS2015, the IIS Express applicationhost config file may be located here:
$(solutionDir)\.vs\config\applicationhost.config
and the <UseGlobalApplicationHostFile> option in the project file selects the default or solution-specific config file.
Building upon the answer from booij boy, check if you checked the "windows authentication" feature in
Control Panel -> Programs -> Turn windows features on or of -> Internet Information Services -> World Wide Web Services -> Security
Also, there seems to be a big difference when using firefox or internet explorer.
After enabeling the "windows authentication" it works for me but only in IE.
In addition to these great answers, in the context of an IISExpress dev environment, and in order to thwart the infamous "system.web/identity#impersonate" error, you can simply ensure the following setting is in place in your applicationhost.config file.
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
</configuration>
This will allow you more flexibility during development and testing, though be sure you understand the implications of using this setting in a production environment before doing so.
Helpful Posts:
http://forums.iis.net/post/1873372.aspx
http://www.iis.net/learn/application-frameworks/building-and-running-aspnet-applications/aspnet-20-breaking-changes-on-iis
In IIS Manager click on your site.
You need to be "in feature view" (rather than "content view")
In the IIS section of "feature view" choose the so-called feature "authentication"
and doulbe click it.
Here you can enable Windows Authentication.
This is also possible (by i think in one of the suggestions in the thread) by a setting in the web.config ( ...)
But maybe you have a web.config you do not want to scrue too much around with.
Then this thread wouldnt be too much help, which is why i added this answer.
This answer may help if: 1) your site used to work with Windows authentication before upgrading to Visual Studio 2015 and 2) and your site is attempting to load /login.aspx (even though there is no such file on your site).
Add the following two lines to the appSettingssection of your site's Web.config.
<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>
On the same note - VS 2015, .vs\config\applicationhost.config not visible or not available.
By default .vs folder is hidden (at least in my case).
If you are not able to find the .vs folder, follow the below steps.
Right click on the Solution folder
select 'Properties'
In Attributes section, click Hidden check box(default unchecked),
then click the 'Apply' button
It will show up confirmation window 'Apply changes to this folder, subfolder and files' option selected, hit 'Ok'.
Repeat step 1 to 5, except on step 3, this time you need to uncheck the 'Hidden' option that you checked previously.
Now should be able to see .vs folder.
After doing everything in the above answers, I figured out I was not running Visual Studio as Admin. After running as Admin, problem solved.
If none of the answers helps, you might need to adjust the project properties. Check this other StackOverflow answer on how to do that:
https://stackoverflow.com/a/20857049/56621
I'm using visual studio 2019 develop against ASP.Net application. Here's what been worked for us:
Open your Project Property Windows, Disable Anonymous Authentication and Enable Windows Authentication
In your Web.Config under system.web
<authentication mode="Windows"></authentication>p
And I didn't change application.config in iis express.

Resources