> I would like to see #2, assuming as Marvin stated "configuration 
> distills down to something trivial for folks that don't need the 
> authorization and advanced security features of Forms auth".  If 
> not, #1 might be valuable.

Forms authentication doesn't play a role in any of the authorization/advanced 
security features per se, it just makes them possible.  Forms authentication is 
just the MS implementation that deals with authenticating users and setting a 
principal up on the thread/context.User at the right point in the request 
processing.  It also handles collecting and validating credentials via HTML.

Here a partial picture of the events fired at every request:
http://support.microsoft.com/kb/307985#1

1) BeginRequest (very beginning of each request)
2) AuthenticateRequest (set principal)
3) AuthorizeRequest (verify principal is authorized for resource)
4) ResolveRequestCache (check for and handle cache hits)
5) AcquireRequestState (load user's session)
6) PreRequestHandlerExecute (last chance before page exec)
7) === IHttpHandlers, WebForms pages, MVC execute here ===
8) PostRequestHandlerExecute (page just executed)
9) ReleaseRequestState (save user's session)
10) UpdateRequestCache (write to cache if necessary)
11) EndRequest (request done processing)

The advanced security features in ASP.NET work as a consequence of Forms or 
Windows Authentication _because_ the principal is set at the appropriate step.  
The Session-based implementations broke these features solely because 
AcquireRequestState(5) fires after AuthenticateRequest(2) and 
AuthorizeRequest(3).  So in other HttpModules, every request is effectively 
anonymous until AcquireRequestState(5) or PreRequestHandlerExecute(6) 
(depending on the order the modules are installed in the pipeline).  The 
principal wasn't set early enough.  

With the earlier implementations, page-level code could detect an authenticated 
user because Web Forms pages execute between PreRequestHandlerExecute(6) and 
PostRequestHandlerExecute(8), both of which fire after AcquireRequestState(5) 
which is where the two implementations were setting up the principal.  However, 
other security related HttpModules (i.e. UrlAuthorizationModule) need access to 
that principal in the AuthenticateRequest(2) and AuthorizeRequest(3) steps.  
Also, ResolveRequestCache(4) couldn't have varied cached content by user/role 
because AcquireRequestState(5) fires right after ResolveRequestCache(4).  
Attempts at storing an entry in the cache varied-by-user would have silently 
succeeded, but the actual data store would be contaminated--all writes would 
have been anonymous, all reads would have been anonymous--it would be last-in, 
first-out for everyone.

Don't quote me on this because I haven't tested it, but I believe that by 
having this setup in the right spot, 3rd party ASP.NET applications that don't 
violate the assumptions of this model should be CASified as a result of the 
module being installed.

Scott Holodak                    Aspire | A Plan for Princeton
Princeton University              Office of Development

-----Original Message-----
From: Winfrey, Catherine [mailto:cwinf...@vt.edu] 
Sent: Friday, March 05, 2010 12:43 PM
To: cas-dev@lists.jasig.org
Subject: RE: [cas-dev] Feedback requested on dotnet-casclient

I would like to see #2, assuming as Marvin stated "configuration distills down 
to something trivial for folks that don't need the authorization and advanced 
security features of Forms auth".  If not, #1 might be valuable.

-----Original Message-----
From: Scott M. Holodak [mailto:sholo...@princeton.edu] 
Sent: Friday, March 05, 2010 12:36
To: cas-dev@lists.jasig.org
Subject: RE: [cas-dev] Feedback requested on dotnet-casclient

Hi Bill, Catherine,

I'm a little unclear about what you are agreeing to.  The wording of the quoted 
paragraph implies two possible outcomes:

1) We maintain both modules in the library and the alternate module maintainers 
follow along with the API changes

2) We discuss & flush out any outstanding reservations about adopting the 
Forms-based module and remove the alternate module from the trunk.

-Scott

Scott Holodak                    Aspire | A Plan for Princeton
Princeton University              Office of Development


-----Original Message-----
From: Winfrey, Catherine [mailto:cwinf...@vt.edu] 
Sent: Friday, March 05, 2010 12:14 PM
To: cas-dev@lists.jasig.org
Subject: RE: [cas-dev] Feedback requested on dotnet-casclient

I agree.

-----Original Message-----
From: William G. Thompson, Jr. [mailto:wgt...@gmail.com] 
Sent: Friday, March 05, 2010 12:08
To: cas-dev@lists.jasig.org
Subject: Re: [cas-dev] Feedback requested on dotnet-casclient

On Fri, Mar 5, 2010 at 9:50 AM, Marvin Addison <marvin.addi...@gmail.com> wrote:

[snip]

>> - Have the CasAlternateAuthModule maintainers update their code
>> to make use of the CasAuthentication static API implementation and actively
>> sync with API changes.
>
> My vote is for one of the above; I will update and maintain
> CasAlternateAuthModule going forward if I determine it's valuable.
> The determining factor for me in whether this component has value is
> whether the CasAuthenticationModule configuration distills down to
> something trivial for folks that don't need the authorization and
> advanced security features of Forms auth.  I expect I will find this
> is the case and we can simply remove it and focus on
> CasAuthenticationModule going forward.

+1

Bill

-- 
You are currently subscribed to cas-dev@lists.jasig.org as: cwinf...@vt.edu
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-dev


-- 
You are currently subscribed to cas-dev@lists.jasig.org as: 
sholo...@princeton.edu
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-dev


-- 
You are currently subscribed to cas-dev@lists.jasig.org as: cwinf...@vt.edu
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-dev


-- 
You are currently subscribed to cas-dev@lists.jasig.org as: 
sholo...@princeton.edu
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-dev


-- 
You are currently subscribed to cas-dev@lists.jasig.org as: 
arch...@mail-archive.com
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-dev

Reply via email to