Disable Basic-Authentication without IIS manager - asp.net

My ASP.NET MVC web application handles the authentication itself by explicitly sending the 401 status code and the www-authenticate header to make the browser display the basic authentication dialog.
My hosting provider doesn't provide access to the IIS manager and has the IIS BasicAuthenticationModule always enabled.
Unfortunately, the custom basic authentication implemented by my application is therefore now "hidden" by the IIS BasicAuthenticationModule. Any time I send a 401, the BasicAuthenticationModule seems to think it's his responsibility to handle the authentication. It also overrides the custom www-authenticate header of my application.
Is there a way to disable the IIS module for just my web application using the web.config only? I already tried adding the following settings to the web.config:
<configuration>
<system.webServer>
<modules>
<remove name="BasicAuthenticationModule" />
</modules>
</system.webServer>
</configuration>
But that just generates a lock violation error. This setting didn't do the trick either:
<configuration>
<system.web>
<authentication mode="None" />
</system.web>
</configuration>
Any other suggestions?

If you disable any authentication on IIS manager and check web.config, you will find that there is no configuration about authentication in it. Because configurations are saving in applicationhost.config file. That is why you need to use IIS manager.(Only administrator can use IIS manager)
But according to microsoft docs, you can use appcmd to configure these settings. This commits the configuration settings to the appropriate location section in the ApplicationHost.config file.
appcmd.exe set config "site name" -section:system.webServer/security/authentication/basicAuthentication /enabled:"False" /commit:apphost

Related

Http response are not visible outside the IIS server but we can able to see the response headers in the localhost

In our application we use
Angular as Frontend
Laravel as API
IIS Server for hosting
Here we have included the HTTP headers in the IIS server, Angular, and Laravel.
but we can't able to find the response headers outside the IIS server. The response is visible only inside the IIS server localhost live site.
Localhost
Outside the server
We need to resolve this in order to fix vulnerability issues.
Please give some suggestions to fix this.
Thanks in advance.
You need to enable send error details to remote request.
And also allow send error to broswer.
And your web.config should add below tags.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<directoryBrowse enabled="true" />
</system.webServer>
<system.web>
<customErrors mode="Off"/>
<identity impersonate="false" />
</system.web>
</configuration>
<!--ProjectGuid: 03213645-6ED3-8955-218D4B4DFC8D-->
This function is enabled by IIS server to protect the server. It is not recommend to enable enable this feature. This is an expected behavior, not a issue.

IIS web.config in classic asp

I have a classic asp site hosted in IIS 7.5. Currently it allows me to upload only <200KB files. The hosting provider said that I should put that limit in web.config. I do not know how to increase the limit using web.config.
ASP Limits properties are by default located in the server applicationHost.config, if you don't have access to it, your hosting provider must delegate ASP feature to lower levels.
Once it is done, put this in your web.config:
<system.webServer>
<asp>
<limits maxRequestEntityAllowed="200000000" />
</asp>
</system.webServer>
Note that if the server is not delegating this feature properly, you will get an error when trying to do a request to your app.

.NET Forms Authentication using IIS8.0 Express (vs2013) - 401.2.: Unauthorized: Logon failed due to server configuration

One thing to note: I created a Webapp w/ Individual User Accounts Authentication and added
and it works exactly as expected. I wonder what is different between this app and when starting with No authentication.
I created a fresh webforms app w/ no Authentication just to make sure there was nothing specific in my project. Follow this tutorial to setup basic forms authentication. When I load my project I get the below error rather then it redirecting me to my Login.aspx page. My overall goal is to create a webapp that basically doesn't allow users to access any page unless they are signed in. Since I specify the Login page in the forms tag I am assuming it makes that an accessible page to anonymous users so everyone can login. I feel like my problem has to do with IIS8.0 Express or my project settings. 'Windows Authentication=disabled' 'Anonymous Authentication=enabled'.
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Security/Login.aspx" name=".ASPXFORMSAUTH" timeout="60">
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
Below is the error I am getting:
Server Error in '/' Application.
Access is denied.
Description: An error occurred while accessing the resources required to serve this request. The server may not be configured for access to the requested URL.
Error message 401.2.: Unauthorized: Logon failed due to server configuration. Verify that you have permission to view this directory or page based on the credentials you supplied and the authentication methods enabled on the Web server. Contact the Web server's administrator for additional assistance.
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34212
Had the same issue and found this in my web.config:
<system.webServer>
<modules>
<remove name="FormsAuthentication" />
</modules>
</system.webServer>
Not really sure how it got there but removing it fixed my problem.
I figured I would post it just in case it will help others.

An error occurred while accessing the resources required to serve this request.

I am trying to setup an asp.net website in localhost. Fitst, I enabled IIS server and created website in
C:\inetpub\wwwroot folder and ran to ensure IIS is properly setup. In this case I used a existing website I created from visualstudio IDE. Everything was perfect. In this case I heavily used the following article.
http://forums.asp.net/t/1689133.aspx
Now the problem is I have a web site I downloaded from a remoteserver and I want to host it in localhost.
When I compare the site I downloaded and the working site, I noticed that some files are missing. Howevere, the site in remote sever is working properly.
I didnt see a bin folder and there is no much information on web.config file.
Here is the code in web.config file
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
When I try to do the same process I did for the previous website and tried the browser then I get following erro.
Access is denied.
Description: An error occurred while accessing the resources required to serve this request. The server may not be configured for access to the requested URL.
Error message 401.2.: Unauthorized: Logon failed due to server configuration. Verify that you have permission to view this directory or page based on the credentials you supplied and the authentication methods enabled on the Web server. Contact the Web server's administrator for additional assistance.
Where is the error ? How to fix this issue? If you want more information let me know?
I would suggest you to first allow all users in WebConfig
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
EDIT : As Mentionned by David Thompson, this is highly insecure. Use this only to unblock your test sample code scenario. Never in Production, please.
This is an old question but the answer is seriously insecure, you should add and enable the authentication provider that you require rather than giving anyone authorization.
To add the provider:
https://www.iis.net/configreference/system.webserver/security/authentication/windowsauthentication/providers/add
To enable the method:
Open the IIS Management Console on the web server
Expand the Sites folder
Double-Click the IIS - Authentication option
Under Authentication, select the Anonymous Authentication and click 'Disable' in the Actions pane on the right
For Windows Authentication: Select the Windows Authentication and click 'Enable' in the Actions pane on the right
For Basic Authentication: Select the Basic Authentication and click 'Enable' in the Actions pane on the right
What solved this for my was enabling 32-bit applications in the app pool's advanced settings.
Open IIS
Expand server and click Application Pools in the Connections pane
Select your application pool and click Advanced Settings...
Under General switch Enable 32-Bit Applications to True

WCF web service gives error after hosting

I have hosted a WCF web service in IIS. But when i fire url I get the following error message.
"IIS specified authentication schemes 'Basic, Anonymous', but the binding only supports specification of exactly one authentication scheme. Valid authentication schemes are Digest, Negotiate, NTLM, Basic, or Anonymous. Change the IIS settings so that only a single authentication scheme is used."
You can resolve this issue by disabling the basic authentication on your IIS. It depends that which IIS version you are working with? but for IIS 7, you can do this by updating you web.config file as follows:
<system.webServer>
<security>
<authentication>
<basicAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>

Resources