Article : COM + Services Part 6 ( Security )
Reply
![]() |
|
|
From:
Nasha
|
Hi Group,
Today we will implement Role based Security in COM+ Components
Before we go ahead there have been a lot of times when I have been approached with these questions: -
a) How do we start a transaction on COM+? In COM+ transaction is implicitly started for all the methods, which are present in the serviced component. There is no way to explicitly start the transaction like begin trans etc.
b) What type of methods should be present in COM+ components? Only those methods that change data should be kept in serviced components. Methods that only retrieve data like GetEmployeeList etc. should not be placed in serviced components.
c) Is using AutoComplete good? Yes. But provided you have done a robust error handling and u are sure to complete your transaction. If not go in for the SetComplete and SetAbort style ... I know its a little old fashioned but it is robust.
d) If there are two methods in a serviced class say method A and method B and from A there is a call to B then should I call SetComplete from B? Yes. We should always remember that COM+ and MTS works on a two phase commit protocol hence every operation has to acknowledge whether it was a success or a failure. Hence all the methods need to either call SetAbort or SetComplete.
Enabling Role-based security: -
To enable Role - based Security in our COM+ Components NET Framework provides us with ContextUtil.IsCallerRole() method. This method authenticates the current user with a Windows 2000 user group and returns a boolean value.
E.g. To validate whether the current user is a part of a windows user group "DotNet"
If(ContextUtil.IsCallerInRole("DotNet") == true) { // to perform the required operation }
Add the above code to our Manager classes so that only those users, which belong to the Dot Net user group, will be able to update employee' s details.
We can also check whether the called component has an existing transaction or not.
To check whether the called component is in transaction or not .NET framework provides us with ContextUtil.IsInTransaction() method.
e.g. To check whether there is an existing transaction or not
If(ContextUtil.IsInTransaction == false) { // Perform the required action } I m through with COM+ Services. If there is any thing that you want me to discuss pls mail it to me. Please do mail or post ur feedback and comments. -- Please post your queries and comments for my articles in the user group for the benefit of all. I hope this step from my end is helpful to all of us. You can find all articles written by me at my personal blog http://spaces.msn.com/members/nasha.
Regards,
Namratha (Nasha) [EMAIL PROTECTED] |
|
View other groups in this category.
![]() |
To stop getting this e-mail, or change how often it arrives, go to your E-mail Settings.
Need help? If you've forgotten your password, please go to Passport Member Services.
For other questions or feedback, go to our Contact Us page.
If you do not want to receive future e-mail from this MSN group, or if you received this message by mistake, please click the "Remove" link below. On the pre-addressed e-mail message that opens, simply click "Send". Your e-mail address will be deleted from this group's mailing list.
Remove my e-mail address from dotNET User Group Hyd.
|
|