I am not sure what you mean.
Main Topics
Browse All TopicsOK, I guess this is a good location for this question.
I have a W2K server, running IIS 6 and Active Directory Services. I have an ASP.Net application off the root web directory named "Apps". Within the IIS Manager I have the Authentication method set to "Anonymous Access" as well as "Authenticated Access" using "Integrated Windows Authentication" for both the root web and the "Apps" sub-directory. All files and directories under the "Apps" folder are set in this manner.
The web config file is set to use "Windows" for Authentication and "*" for Authorization.
Using Explorer I have changed the permissions for one file in the "Apps" directory. For this file, let's call it "myfile.aspx", I have removed the "Everyone" group. The permissions for this file are as follows:
Creator Owner - Full Control
System - Full Control
mydomain\Administrators - Full Control
mydomain\MyGroup - Read, Read/Execute
If I attempt to access any file on this web via a web browser it works as it should with the exception of this single file, "myfile.aspx". When attempting to access this file it will ask for a username/password/domain and will not accept anyone, including anyone from the "Administrators" or "MyGroup" groups.
The error I get in the browser is:
Server Error in '/Apps' Application.
--------------------------
Access is denied.
Description: An error occurred while accessing the resources required to serve this request. You might not have permission to view the requested resources.
Error message 401.3: You do not have permission to view this directory or page using the credentials you supplied (access denied due to ACLs). Ask the Web server's administrator to give you access to 'c:\inetpub\wwwroot\apps\m
--------------------------
Version Information: Microsoft .NET Framework Version:1.1.4322.573; ASP.NET Version:1.1.4322.573
This is the same basic configuration I use on other web servers for security and have not had this problem before. I have another server within this domain that is configured in the same manner that works although it is not an ASP.Net application. I have tried this from systems logged into the domain and from systems not logged into the domain with the same results.
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
You need to give myfile.aspx permissions for ASPNET or you need to have the app impersonate a user who does have permissions for the app to be able to access the file.
I believe permissions are applied in this order: from first to last (i may be wrong though)
1. File (ACL or NTFS permissions)
2. IIS
3. ASP.NET
You'll need access from each one before to get the next. (you can skip some by not setting them)
So if your using ASP.NET you need to allow the two above it. It's complicated, and can be confusing...
ZRH
Ok, I read your question more carefully and noticed that the issue is involving the ACL checks.
Adding <identity impersonate="true"/> to your web.config file ought do the trick. This way the app will use the account specified by IIS using Windows authentication. It will use that account's file access permissions. If logged in has/or is in a group that has permission to access the file it will be granted. The app otherwise will use the anonymous user account that IIS uses (IUSR_MACHINENAME).
This link will shed more light:
http://msdn.microsoft.com/
ZRH
In web.config I have the following:
<authentication mode="Windows" />
<authorization>
<deny users="?" /> <!-- Deny unauthenticated users -->
</authorization>
<identity impersonate="true"/>
and to recap I have the following permissions on "myfile.aspx":
Creator Owner - Full Control
System - Full Control
mydomain\Administrators - Full Control
mydomain\MyGroup - Read, Read/Execute
mydomain\ASPNET - Read, Read/Execute
Now when I attempt to access the page I am not prompted for the login and I get the error below:
Server Error in '/Apps' Application.
--------------------------
Access is denied.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ApplicationExceptio
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[ApplicationException: Access is denied.
]
System.Security.Principal.
System.Security.Principal.
System.Web.Configuration.A
System.Web.Configuration.A
System.Web.Security.UrlAut
System.Web.SyncEventExecut
System.Web.HttpApplication
Are you still allowing anonymous access in IIS for the Apps directory? I see that you are denying unauthenticated requests in ASP.NET, so you might want to uncheck the anonymous access in IIS. If so, IIS might passing the IUSR_<MACHINENAME> identity to the application. Then the app might be being denied permission to access the .aspx based on those credentials. Because I think IIS uses anonymous credentials unless more is needed.
Also, you might want to check out this link (I think this might apply to your config):
http://www.jsiinc.com/SUBN
ZRH
By the way, you can avoid all these permission settings if you want by just doing some programattic checking in the .aspx file.
i.e)
Set permissions like all other files...
then:
In Page_Load event.
WindowsPrincipal principal = (WindowsPrincipal)Thread.C
if(!principal.IsInRole("My
Request.Redirect("./access
}
ZRH
Ok here is what I now know based on some pointers from ZRH. These are the steps I had to take to enable selective access to files using Windows as the authentication format. I chose this format because the management of users and files is already in place and it does not require yet another username and password combination to be remembered.
Keep in mind my configuration included a W2K server, IIS 5, and Active Directory services with the web server also acting as a Domain Controller. So, having said that, to control access to a file or directory with W2K and IIS5 when accessed via a web browser you must do the following:
In IIS Management Console set the "Authentication" method to whatever level you prefer. This can be done for the folder or virtual directory as well as individual files. In my case I wish to allow some files to be accessed by everyone so I have enabled both "Anonymous Access" for this purpose and under "Authenticated Access" I have enabled "Integrated Windows authentication". This allows further access control using NTFS file permissions. The most restrictive permissions will apply. Enabling "Anonymous Access" will not allow an unauthenticated user or user without proper credentials to access a resource for which he has not been given access rights through NTFS permissions. As a side note my installation used the IUSR_machinename as the Anonymous User account and the checkbox was enabled to allow IIS to manage the password. Close IIS Management Console.
In Windows Explorer right-click on the file or folder that you wish to change permissions for. Add or remove groups and users as needed and change permissions for these groups and users. I have found that the following accounts must be added regardless of the other settings and have found documentation that seems to support this:
Creator Owner - Full Control
System - Full Control
domainname\ASPNET - Read, Read/Execute
domainname\IWAM_machinenam
and any other accounts you wish to have access this resource. Close Windows Explorer.
Once this has been accomplished go to StartProgram FilesAdministrativ
At a command prompt issue the following command:
secedit /refreshpolicy machine_policy /enforce
then at the command prompt issue the following command:
iisreset
Close the command prompt window. Now we need to modify the web.config file for the ASP.NET application as follows:
<authentication mode="Windows" />
<authorization>
<allow users="*" /> <!-- This allows all users to access even if they are outside the domain provided NTFS permissions allow it and IIS allows "Anonymous Access" -->
</authorization>
<identity impersonate="true"/> <!-- This allows ASP.NET to impersonate the user requesting a restricted resource after authentication has taken place. It requires that an account be specified for the impersonation on the macine hosting the ASP.NET application -->
Save the file and check for proper operation of the web site pages you have modified the permissions for. If anyone notices inaccuracies in document please feel free to make corrections and thanks again to ZRH.
Here are some external resources I used:
http://support.microsoft.c
http://4guysfromrolla.411a
http://www.jsiinc.com/SUBN
Ok here is what I now know based on some pointers from ZRH. These are the steps I had to take to enable selective access to files using Windows as the authentication format. I chose this format because the management of users and files is already in place and it does not require yet another username and password combination to be remembered.
Keep in mind my configuration included a W2K server, IIS 5, and Active Directory services with the web server also acting as a Domain Controller. So, having said that, to control access to a file or directory with W2K and IIS5 when accessed via a web browser you must do the following:
In IIS Management Console set the "Authentication" method to whatever level you prefer. This can be done for the folder or virtual directory as well as individual files. In my case I wish to allow some files to be accessed by everyone so I have enabled both "Anonymous Access" for this purpose and under "Authenticated Access" I have enabled "Integrated Windows authentication". This allows further access control using NTFS file permissions. The most restrictive permissions will apply. Enabling "Anonymous Access" will not allow an unauthenticated user or user without proper credentials to access a resource for which he has not been given access rights through NTFS permissions. As a side note my installation used the IUSR_machinename as the Anonymous User account and the checkbox was enabled to allow IIS to manage the password. Close IIS Management Console.
In Windows Explorer right-click on the file or folder that you wish to change permissions for. Add or remove groups and users as needed and change permissions for these groups and users. I have found that the following accounts must be added regardless of the other settings and have found documentation that seems to support this:
Creator Owner - Full Control
System - Full Control
domainname\ASPNET - Read, Read/Execute
domainname\IWAM_machinenam
and any other accounts you wish to have access this resource. Close Windows Explorer.
Once this has been accomplished go to Start-->Program Files-->Administrative Tools and open the Domain Controller Security Policy. Once inside the Domain Controller Security Policy Console go to Windows Settings-->Security Settings-->Local Policies-->User Rights Assignments. In the right hand pane double-click on "Impersonate a client after authentication". Enable the "Define these policy settings" checkbox and click "Add". Click "Browse" then find and select the account IWAM_machinename and click OK-->OK-->OK. Close the Domain Controller Security Policy Console.
At a command prompt issue the following command:
secedit /refreshpolicy machine_policy /enforce
then at the command prompt issue the following command:
iisreset
Close the command prompt window. Now we need to modify the web.config file for the ASP.NET application as follows:
<authentication mode="Windows" />
<authorization>
<allow users="*" /> <!-- This allows all users to access even if they are outside the domain provided NTFS permissions allow it and IIS allows "Anonymous Access" -->
</authorization>
<identity impersonate="true"/> <!-- This allows ASP.NET to impersonate the user requesting a restricted resource after authentication has taken place. It requires that an account be specified for the impersonation on the macine hosting the ASP.NET application -->
Save the file and check for proper operation of the web site pages you have modified the permissions for. If anyone notices inaccuracies in document please feel free to make corrections and thanks again to ZRH.
Here are some external resources I used:
http://support.microsoft.c
http://4guysfromrolla.411a
http://www.jsiinc.com/SUBN
Help!!!
I read everything you guys said above but here is the situation i am facing similar to yours but slightly differnt
I have enabled windows integrated authentication
Web.config-
authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
<identity impersonate="true"/>
My ntfs permissions has
admin - full
Raj-full
system-full
I do NOT have ASPNET account.
When i run the application the app, i enter my name (Raj), password and domain and i can enter the wbsite. Then when i press an arrow (tht calls another aspx page which is supposed to check the entered credentials and see if the user can access the next page or not) I get an error!!!
Access denied to 'C:\webroot\testapp\'. Failed to start monitoring file changes.
But when i add ASPNET to the NTFS ACL then it works....but then anyone can access the page.
I want only the specifiled users in NTFS ACL on tht directory to access it.
Why am i getting the error?
Business Accounts
Answer for Membership
by: GoodJunPosted on 2003-10-15 at 11:17:42ID: 9556757
what's the user.Name in your case? machinename\ASPNET?