How to use Authorization & Authentication in Asp.net, C#? - c#

I am using Roll management and I am trying to give page and folder access according to user or user group, Also using server created AD group for user authentication.
I have default1.aspx page as default and subdir1 folder to give different access for separate user group
I am using below logic in web.config.
<location path="subdir1">
<system.web>
<authorization>
<allow users ="?" />
</authorization>
</system.web>
</location>
I am facing problem to provide same access to 2 or more directory to same user so should I have to provide allow user code twice for both folder?
I can use this logic by repeating value for all folder but I want to do all access providing in one logic.

I have got the answer to configure folder/page access, For that i have to make different access as shown below..
Configure Access to a Specific File and Folder, Set up forms-based authentication.
Request any page in application to be redirected to Logon.aspx automatically.
In the Web.config file, done the following code.
This code grants all users access to the Default1.aspx page and the Subdir1 folder.
<configuration>
<system.web>
<authentication mode="Forms" >
<forms loginUrl="login.aspx" name=".ASPNETAUTH" protection="None" path="/" timeout="20" >
</forms>
</authentication>
<!-- This section denies access to all files in this application except for those that you have not explicitly specified by using another setting. -->
<authorization>
<deny users="?" />
</authorization>
</system.web>
<!-- This section gives the unauthenticated user access to the Default1.aspx page only. It is located in the same folder as this configuration file. -->
<location path="default1.aspx">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>
<!-- This section gives the unauthenticated user access to all of the files that are stored in the Subdir1 folder. -->
<location path="subdir1">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>
</configuration>
Users can open the Default1.aspx file or any other file saved in the Subdir1 folder in your application. They will not be redirected automatically to the Logon.aspx file for authentication.
Repeat configuration Step to identify any other pages or folders for which you want to permit access by unauthenticated users.
For more Reference check Microsoft support page - https://support.microsoft.com/en-us/kb/301240
And also you can check http://www.iis.net/configreference/system.webserver/security/authorization
After you have to do coding on login page for reference check this -> http://www.codeproject.com/Articles/13872/Form-authentication-and-authorization-in-ASP-NET

Actually, the asp.net user access management spans widely so I've decided to introduce you two links which help me a lot. Hope this could help you as well.
Understanding Role Management
Walk through role management

Related

IIS doesnt work with "location path code" on web.config

Error trying to access into a folder on IIS:
the first users has access to everything, while the other cant.
<authentication mode="Windows">
</authentication>
<authorization>
<allow users="Domain\AnotherDomain"/>
<deny users="*"/>
</authorization>
<identity impersonate="true" />
This is the code im using to grant access to the users, because the IIS doesnt recognize the Active Directory "roles":
<location path="~/UsuarioTI">
<system.web>
<authorization>
<allow users ="Domain\MyDomain" />
<deny users="*"/>
</authorization>
</system.web>
this is the error when im trying to enter into the website,
401 - Unauthorized: Access is denied due to invalid credentials.
Is there anything else that i need to install, besides enable windows authentication and disable the rest of them?
PD: whenever i try to access into the path im allowed to, it's asking for the user with 'AnotherDomain',because the other has no access.
PD2: How to recognize roles on IIS or throught localhost?
In IIS check the Pool Application Name you used for your website and then
add on the folder permissions as follow : IIS AppPool\poolName
poolName => is the name of you Pool Application !
That the virtual user created, you won't find it in the search, just add it as I mentioned above.

First page of my website doesn't load correctly "css"

I have a problem with my website using C# and .Net.
When i try to access to my website the first page doesn't load correctly because of the css which is the authentication page.
But after the connection, the website work perfectly by miracle and the css load correctly...
Is any one can help me please with this i would be very grateful.
This is a common problem. I'm assuming you're using Forms Authentication, right?
Your login page has a reference to your css file. Let's say your css file is at /css/site.css. When a user isn't authenticated, then their browser is denied access to the css file that your login page needs to render properly.
You need to configure your website to allow unauthenticated access to that path of your application. In your web.config, add the following inside your <configuration> tag.
<location path="css/site.css">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
This is bacause the CSS file needs authtication but at the stage of login page, the authentication is not yet available.
You need to allow unauthenticated access to the css file.
Add the following into the "" tag inside web.config file.
<location path="Path/file.ext">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>

Location in web.config of secured pages

I am developing a Web Applilcation in Asp.net 4.0 , wherein i have two types of Pages "Secured" and "Unsecured".
To access Secure Pages, am using Location tag in my secured's web.config and the user must successfully Login. and after that login am going to copy that url and then logout.
My expected result:- while am going to paste that url in browser then it will again display me the login page again.
so please give me the example related to my query.
Thanks In Advance.....
You need to use the authorization tag in your location to restrict access for anonymous users e.g.
<location path="Secured.aspx">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
What I do is create a folder (perhaps named 'Secure') and add a web.config file inside the folder. It will be very small... possibly as simple as this (which only permits logged-in users):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
Any page added to the folder will cause a login prompt upon access without the need to do anything else on your part. This is assuming you are using ASP.Net Membership/Security features (as it sounds like from your question).
Note: the additional/small web.config file will be limited to the scope of the folder that contains it.
If you wanted to create a couple roles (we do this for our Internal Admin pages), you can restrict access to only users tied to those roles... it's pretty easy. The following web.config is in our Admin folder that contains all our admin pages...
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<allow roles="FullClearance" />
<allow roles="HighClearance" /><!-- mgr clearance-->
<allow roles="StandardClearance" /> <!-- staff clearance-->
<deny users="*" /><!-- authenticated users -->
<deny users="?" /><!-- anonymous users -->
</authorization>
</system.web>
</configuration>

Asp.net : How to deny a page to be accesed by users and set permissions?

I have some asp.net pages , and I want to deny them to be accessed by direct link .
So I need to make a page to by accessed only by administrators and a page that will be accesed by logged users.
How can I do that? can someone explain or show a good example?
Thank you
You can create a folder with pages that needs to be accessed by set of users. Inside the folder you can create web.config with restriction.
eg.<configuration>
<system.web>
<authorization>
<deny users="user1,user2" />
<allow users="*" />
</authorization>
</system.web>
</configuration>
You can find more about ASP.NET Security
Update
On successful login you can add the users to a specific role.
eg. you assigned to the role users
then you can modify the web.config
<authorization>
<allow roles="users" />
<deny users="*" />
</authorization>

Web.config Location element functioning incorrectly

Environment: ASP.NET 3.5, C#, Forms Authentication, IIS 6
Problem details: I have a web.config file set up with forms authentication and the following are the location element, as appearing:
<location path="Home/Common">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Business/Services">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
The Home/Common folder contains my ForgotPassword.aspx.
The Login.aspx page is set as the LoginUrl
When the Login page is visited the first time (with no prior cookies etc.) the ForgotPassword link functions fine. It redirects to the page as desired.
However, once a user has logged in, upon Sign Out, the ForgotPassword link doesnot redirect. Rather, forms authentication precedes and redirects to the login url with the ReturnURL querystring pointing to Forgot Password page.
The question simply is: If prior to signing in the element is considered and rightly excluded from forms authentication, why post Signing in and Sign out it gets in the purview of Forms authentication.
It is to be noted that on clearing Browser history, the functionality works as expected.
Any help would be appreciated.
Thanks.
It is more common to use the question mark (?) to allow/deny unauthenticated users. Unauthenticated users are the ones that really need to use the login page and password reset functionality, so allowing all users (*) to access them is an incorrect configuration. However, you have not posted your entire Web.config. There will be a root configuration for authorization that deals with "everything else."
How I would likely configure this is within the root <system.web>, I'd have:
<authorization>
<allow users="*" />
</authorization>
And later in the Web.config, define locations that are secured:
<location path="Business/Services">
<deny users="?" />
</location>
Which denies all unauthenticated users to pages within that folder. Your login and forgot password pages would be in the root folder. Regardless, either I'm missing something or you do not have the root authentication configured which might be confusing ASP.NET's authentication.

Categories

Resources