473,699 Members | 2,385 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Security.Princi palPermission.D emand()

Hi,

Normally my programming style is as follows:

/*************** */
if ( SomeObject.CanY ouDoThis() == true)
SomeObject.DoSt uff();
else
MessageBox.Show ("Nope, sowwy...");
/*************** */

Meaning, most usually I don't just call "DoStuff()" and show the 'nope
sowwy' message if I caught an exception.

Now, the question is: can someone explain why the
PrincipalPermis sion's Demand method seems to work like this? MS
recommends to try the Demand() method before you do something secure,
and catch any exception to handle non-authenticated users. This seems
a bit like misusing exceptions?

Thanks.

-Jeroen
Jan 14 '08 #1
3 3256
Bump?

-Jeroen
Jan 15 '08 #2
MsgBox is fine at the UI, and indeed the UI would be correct to check
whether something should work before attempting it (by calling
IsInRole) - however, when you're a few layers down (i.e. not touching
the UI), the best way to indicate "nope, sowwy" is to throw an
exception. To me, this is entirely reasonable behavior if the caller
has failed to enforce the pre-requisites for a method (i.e. that the
user is in a given role), and is *correctly* using exceptions. Return
codes are generally simply not a good way of indicating success
[although it is fine for the bool TrySomething(.. .) signatures].

In fact, the runtime takes it a level further; you can mark a method
with the [PrincipalPermis sion(Demand...b lah)] attribute and it will
enforce it at the point the method is invoked - again, throwing an
exception as a perfectly well-defined "as if!" response.

Marc
Jan 15 '08 #3
Thanks Marc, that answers my question.

-Jeroen
Jan 15 '08 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
2352
by: craig | last post by:
I am working on my first .NET development project that involves custom role-based security per the project requirements. This lead to a general design issue this week that really caused us some concern. I have described the situation below because we are very curious to see what other, more experienced, developers might suggest. The specific classes and fields are used just to illustrate the concepts. Our application uses role-based...
1
1161
by: localhost | last post by:
I have decorated several classes and methods in an ASP.NET appliation with declarative security attributes for roles. For example: I currently use a Try...Finally block in calling code to test a user's Role permissions. I would like to get away from this and use a real logical construct.
1
2660
by: Jason | last post by:
Hi I have a ASP.NET application where i would like to authenticate the connecting users according to the Local Users and Groups on the web server. I have the following code in the ASP.NET project. private static void Demand(string groups) { WindowsIdentity processIdentity = WindowsIdentity.GetCurrent(); Console.WriteLine(processIdentity.Name);
3
1454
by: xenophon | last post by:
I am using Role-based seucity Attributes on different methods in my code-behind like this: private void callmymethod() { try { mymethod(); } catch{}
3
3438
by: Dave Wurtz | last post by:
All, Does anyone have ideas how they have implemented field (property) level security? I want to handle this from the business object level, not the database level. Is it best to have a security checking method that gets called in the property and throws an exception? If there are several "fields" that are being accessed multiple times, does it hurt from a performance perspective to have these exceptions thrown all of the time? ...
1
1058
by: Paul | last post by:
I was working with a VB book that was going over the Security stuff in VBNet, and I can't seem to get their code to work. I modified it and I can't seem to get it to work either. I am running windows XP at home(not on a network). My username is "Paul" and I am part of Administrators group. (I tripled checked)Here is the code. Thanks in advance for the help. Imports System.Security, System.Security.Principal,...
1
1097
by: Ray Cassick \(Home\) | last post by:
I am having a bit of a problem doing something that I was expecting to be very straight forward. I am trying to declare a Role that needs to be available before a specific class can be instantiated. My class code is set up like this: Imports System.Security Imports System.Security.Permissions Imports System.Security.Principal <PrincipalPermission(SecurityAction.Demand, Role:="RUS\GEM_Admin")> _
3
1211
by: Ray Cassick \(Home\) | last post by:
I have some code that looks like this for one of my classes: Imports System.Security Imports System.Security.Permissions Imports System.Security.Principal <PrincipalPermission(SecurityAction.Demand, Role:="RUS\GEM_Admin")> _ Public Class GccAdmin Public Sub New() End Sub
0
1300
by: wk6pack | last post by:
Hi, I'm trying to get my application to authenticate using role based when the user runs the application. When the user logs on and is in the security group "school", the user gets into the application no problem. But when the user is removed from the group but doesnt log back in, he still has permissions to run the application. This is also true if the user is already logged on and then placed in the security group, the user cannot...
0
8685
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8613
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9172
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9032
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
8880
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
5869
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4374
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4626
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3054
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.