...
The source code needed for this article can be downloaded here and can be compiled in Visual Studio 2005 or greater. It will create a .Net assembly (DLL) to drop in your project's bin folder.
For an example of how to do CAS proxying with classic ASP, see me other article CAS Proxying with Classic ASP
First compile the attached code into a .Net assembly and drop it into your project's bin folder. Then, In Web.config, make the following changes:
...
- Turn on Forms Authentication:
Code Block xml xml <!--Authentication mode configuration --> <authentication mode="Forms"> <forms name="casAuth" defaultUrl="Default.aspx" loginUrl="Login.aspx" /> </authentication>
- Deny all unauthenticated users
Code Block xml xml <!-- Authorization configuration --> <authorization> <deny users="?"/> </authorization>
...
- Include the CAS.Web.Security namespace in your pages section.
Code Block xml xml <!-- Pages configuration, Globally Import the CAS.Web.Security namespace so it can be used throughout your CAS application --> <pages> <namespaces> <add namespace="CAS.Web.Security"/> </namespaces> </pages>
...
- Add the CAS host url to the appSettings section. You must name the key: CASURL
Code Block xml xml <!-- Application settings configuration --> <appSettings> <!---change CAS Url accordingly--> <add key="CASURL" value="https://auth.berkeley.edu/cas"/> </appSettings>
...
- Add an httpModules section with the following module. It must be inside the system.web section of your web.config file.
Code Block xml xml <httpModules> <add name="CASAuthenticationV2" type="CAS.Web.Security.CASAuthenticationV2, CASAuthentication"/> </httpModules >
...
- (Optional) If you want all CASAuthentication class related errors routed to your own error page, simply add a customErrors page section to your system.web section. Mode must be set to On for the errors to be re-directed. If mode is Off or the customErrors section is not present in web.config, all errors will be written out to the current application page.
In this example, the page MyErrorPage.aspx can access the last error reported by calling the CASAuthentication.LastError property of the CASAuthentication class.Code Block xml xml <customErrors mode="On" defaultRedirect="MyErrorPage.aspx"> <error statusCode="403" redirect="NoAccess.htm"/> <error statusCode="404" redirect="FileNotFound.htm"/> </ customErrors>
...
VB.Net Code Examples |
---|
The CAS proxier - (Your main default page)
Panel | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
<script runat="server"> Protected Sub btnRunTest_Click(ByVal sender As Object,ByVal e As System.EventArgs) If Not CASAuthentication.InvokeCASProxy(ProxyAppUrl:="{url_to_your_CAS_Proxy_Application}", _ <html> |
...
Panel | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
<script runat="server"> 'We have a pgtIou/pgtId pair sent from CAS server End Sub <html> |
...
Panel | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
<script runat="server"> If CASAuthentication.IsAuthenticated Then Dim proxyArgs As StringBuilder = New StringBuilder ' If Request.QueryString.Count > 0 Then Response.Write(proxyArgs.ToString) If Not String.IsNullOrEmpty(CASAuthentication.Proxies) Then End Sub <html> |