Trent,
I did as you suggested and found that the deny action was Message in both circumstances. With a little further experimenting, I found that this value would always be whatever the default denied action was. So, I can get my test screen, the one without a grid, to behave the way I want if I setup the default permission info as follows:
SecurityBasics.DefaultPermissionInfo = new PermissionInfo(PermissionAction.Deny,"Access Denied.", DeniedActions.ReplaceEachCharacter);
A related thing I noticed by running SQL Profiler is that my screen doesn't make any attempt to find out what the denied action should be for a permission that I don't have. After logging in, the screen executes the following SQL statement which returns only the list of permissions that I have been assigned:
exec
sp_executesql N'SELECT * FROM [dbo].[SFSUserPermissionInfo] WHERE us_pk = @us_pk ORDER BY pm_pk',N'@us_pk int',@us_pk=1Anything permission that I haven't been assigned just uses the DefaultPermissionInfo. For what its worth, my test user is not a memeber of any roles.
Anyway, getting back to my grid screen, changing the default denied action didn't have any affect on the grid. Also, I noticed that the CheckFieldSecurity event never gets fired for the business object bound to the grid.
Thanks for your help.
Fran.