Ensuring
a secure and authentic access to the website is a prime concern for
the most of the asp.net developers and website owners. If your website is open to everyone
and not possessing and security bar, your content and business is at
a great risk of malware and hackers. An illegal and unauthentic
access can affect your page rank and even spam your website.
Authorization and Securing in ASP.NET |
Hence,
it is imperative to manage the access to your website while
considering the user's need. Generally there are several sections on
a website targeted for several administrative and public usage.
Therefore, there is a greater need of authorization, as it will help
keep the consequences of unauthorized access at the bay. Thus, users
will be only able to access the specific sections on the website
depending on their role of responsibility. There comes the job of a
web developer, who is accountable for implementing a secure and
reliable authorization.
Authorization:
A Foreword
The
very vital information that is required while defining the access
limit for a user is to identify the user, that is, whether the user
is a consumer (like customer at an e-commerce site) or an
administrator. Thus, we can say that a website supports
authentication when it can determine the identity of an individual
and upon that basis, it personalizes the website for that user by
representing the known info about the user after logging in.
Authorization
primarily focuses on determining the unique identity of a user and
accordingly identifying the actions that the user can perform. And by
using the unique identity of users, we can further embrace superior
protection on the several sections your website.
Recommended Post : How To Set Up and Use Authentication Filters in ASP.NET
Recommended Post : How To Set Up and Use Authentication Filters in ASP.NET
Creating
Groups Can Help Manage Access Efficiently
It
is quite obvious that managing the access for numerous individuals is
a daunting task and may create bottlenecks in the site's performance.
To handle this issue in a better fashion, you can create groups for
users possessing similar demands or accessing rights. The website
administrator can define the limitations and access for each group
serving a specific role.
How
to protect web pages in ASP.NET site?
Security
is the most vital aspect of any website. For ASP.NET-enabled
websites, there are basically two methods available. Let's ponder
into each approach one by one.
1.
Securing The Routing And Web Forms
This
approach primarily involves the implementation of the web.config
file for securing the access to the web pages.
Basic
XML snippet:
<configuration>
<location
path="customerhome.aspx">
<system.web>
<authorization>
<allow
roles="customer"/>
<deny
users="*"/>
</authorization>
</system.web>
</location>
</configuration>
Here,
in the aforementioned snippet, the path holds the information of the
folder, file or route that you specifically want to secure. If no
path
is defined, by default it will consider the current directory
(web.config). The authorization
element will help define the access and denied access attribute of
the mentioned path. With the allow
element the role or group can be defined.
In
this example, first the <allow
roles="customer"/>
is checked and if a user belongs to the customer group, he will be
granted access and that is it, nothing else is required to be
checked. However, if the user doesn't belong to the specified role,
the next rule will be checked. For instance, here, the users who are
not customers will be denied access.
2.
Securing The MVC
In
this approach the controllers and the actions imposed over those
controllers is paramount. Like web forms, that by default facilitates
access to all the users, while developing ASP.NET website also allows all users
to access controllers and actions.
Here,
you are required to implement the Authorize
attribute. This can help you limit the access of the defined role.
For instance, let's consider a class AdminController
that should only be allowed to be accessed by the users possessing
the Admin
role. This can be done with the following line of code.
[Authorize(Roles
= "siteadmin")]
public
class AdminController : Controller
{
...
How
to handle web pages accessed by multiple roles?
Securing
web pages for users exhibiting single role is much simpler than that
for users with multiple roles.
The
private and sensitive information on the website is needed to be
dealt with utmost precision and care. To ensure their security and
smooth functioning of the website, all unauthorized access should be
prevented. You can follow the aforementioned guide and keep your
ASP.NET website safe and secure by precisely configuring the page
access, actions and roles for all types of potential users.
Now,
once the files, folders, actions, controllers, and routers have been
secured, the next thing is to ensure that no conflicts are
originating while users assigned with multiple roles are accessing
the ASP.NET-enabled website. There is a probability that different
roles have been assigned the access to the page while they possess
different abilities and rights on the page. In such situations, it is
advisable to avoid including the links of URLs, files or action on
the page itself. To deny an action for a role, simply remove that
action from the page, there is no reason for displaying it either.
No comments:
Post a Comment