ASP.NET application and user it is running under - asp.net

I have multiple applications on a IIS server. How can I set one particular application to run as user 'appuser' and all uploaded files to be saved by as this user. ASP.NET

Every single IIS application run under some so-called application pool. The application pools have default identity (App Pool Identity in newer IIS, NETWORK SERVICE in older IIS). You can also set application pool to have custom identity by specifying user credentials.
However it seems like an overkill to run application under specific user if the only thing you require is to set specific owner for files being created - so I'd rather just force file owner after the file was created instead of changing application pool identity.
See Getting / setting file owner in C#
how to do that.
UPDATE
If you have to write to folder which is restricted to (yourspecialusername) I recommend this approach:
1) Dump file to temp files folder
2) Copy your file to shared folder under the (yourspecialusername) - see - Start a .Net Process as a Different User
3) Wait for Process in 2) to exit and delete temp file

Related

IIS 10 getting 401 unauthorized

Deploying an asp.net project on local IIS server as a release version. Getting 401 unauthorized error on API call (allow anonymous enabled). Server runs with administrator user principal. This principal has all the permissions. And the project declared as application with correct .net library. The only thing I can't change is read only flag on the project directory. Anyone can help? Nothing in google resources worked...
Update: After a lot of searching and digging, I found a solution:
IIS Application basic settings - The default settings is to run application with Application pool user, which is usually limited with it's files access permissions. So the idea is to run application with administrator user.
Run as - enter administrator user name and password
Application pool type - The default application pool type is 2 and sometimes new .NET libraries are not accessible. So you have to add all the missing ASP.NET types to IIS.
Usually ASP.Net version suppose to be classic, in this case application works fast. Otherwise application refresh time may take long period.
Local folder permission - add local administrator, that you defined on IIS settings, and grand him all permissions to the folder recursively
SQL Server Management- the default server authentication is Windows Authentication, make it SQL Server and Windows Authentication mode
Add new user to the server and grand him all the permission to the database
Add this user to database Users and change the SQL connection string at the project accordingly. This way you prevent application pull trying to connect with database with it's user
Just posting this here as I went around in circles trying to diagnose an intermittent 401 error.
I had a virtual sub directory within the web application that referenced an external folder which was out of the directory tree so had different folder permissions.
Any scripts that referenced this folder failed - while others ran completely fine.

What's the account to run Asp.NET application?

I have an asp.NET web app which application pool is .NET 2.0
I have following code to generate PDF file(with crystal report):
Response.ContentType = "application/pdf"
Response.WriteFile(PDFFileName)
it puts a pdf file on a specific folder.
It's working fine for long time. but after network changed, it is not working anymore. I guess it is permission issue. With about code, which account should have the write permission on the folder? Is it ASPNET Account?
could be ASPNET or could be NETWORK Service
it depends on what your app pool settings are set to for the user account.
Go into IIS manager and find the app pool your application is running on and see what the account setting is. This is what your website will run under and thus the folder you are writing too will require the account added to the permissions.

using Process.Start in an IIS Website

I have created an ASP.NET website using VB.NET. The functionality of the website generates a .bat file and saves it in a location - it then uses Process.Start(filelocation) to run the bat file.
This works fine when in debug mode on my PC - but when I have uploaded the website on to an IIS 7 server, it creates the file (proving that it has access to the area), but seemingly cannot run it?
I am assuming there is a permission issue here - Any ideas what I am missing?
Thanks
Guy
Every webapp in IIS run under a specific user. Check if that user has privileges to run applications, in particular the *.bat (in your output directory) and related *.exe files.
If you do not use impersonation, you can set the user at App pool level.
My suggestion is to create a dedicated Windows user with the right permissions and run the app pool under that user. The app pool should contains only your web application.

Deploying a web application on the IIS 5

I am in the process of deploying a web application on IIS5 on my server which runs windows XP.So when i run my application in visual studio its perfect.But when i deployed it into IIS it throws me an error saying that the access denied to a particular file.
My app reads a xml file based on the input(which is nothing but the other system in the network).As i browsed to the properties of that file manually and unchecked the read only attribute,still it dint work out.Can any one guide me to the proper solution ?
you might have to give read/write (if needed) to following users:
iis_wpg
network service
aspnet
In IIS, your site runs under the credentials of the application pool assigned to it. You can either change the credentials of your application pool to an account that has permission to access that file, or else grant access to the default account that the application pool is currently using.
You mention that you are using basic auth...
Generally, the web application will then impersonate the user logged in.
So, if your file isn't accessible by the user that logged in, then it won't be accessible to the web application impersonating them on the system either. You will need to check the permissions of those files and set them accordingly.

I don't seem to have an ASPNET user account running on my machine

Hi: I'm reading up on ASP.NET, and just came to a chapter that explains how to upload a file to your website. It says that in order to save a file to your file system, in the case of every OS except Win Server '03, an ASP.NET page executes in the security context of the ASPNET account. I don't have an ASPNET account running on my machine (win xp pro sp3; .NET 3.5). The program runs fine, by the way, I'm just trying to understand what an ASPNET account is exactly, and why it doesn't seem to show up on my list of user accounts. Thanks.
ASPNET is only used if use IIS. This was the norm in ASP.Net 1.1
However in new versions of Visual Studio IIS is not needed, so it uses an internal web server.
If ASPNET exists in a command window ( Start -> Run cmd Clikc OK) type and press enter
net user ASPNET
you should see the details of the account and in Task Manager you will see a process asp_wp.exe
File Access
The Network Service account has Read and Execute permissions on the IIS server root folder by default. The IIS server root folder is named Wwwroot. This means that an ASP.NET application deployed inside the root folder already has Read and Execute permissions to its application folders. However, if your ASP.NET application needs to use files or folders in other locations, you must specifically enable access.
http://msdn.microsoft.com/en-us/library/ff647402.aspx

Resources