Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
BusinessPrincipal.Login("admin", "123")
If
Thread.CurrentPrincipal.Identity.IsAuthenticated Then
Dim test As BOATestList = BOATestList.GetTestList
MsgBox(test.Count) 'should return 5
End If
If Thread.CurrentPrincipal.IsInRole("Administrator") Then
MsgBox("Hi, Administrator!")
End Sub
============================
APP.CONFIG
============================
<?xml version="1.0"
encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Authentication" value="CSLA" />
<add key="PortalServer"
value="http://localhost/DataPortal/DataPortal.rem" />
<add key="ServicedPortalServer"
value="http:localhost/DataPortal/ServicedDataPortal.rem" />
-->
</appSettings>
</configuration>
============================
WEB.CONFIG IN DATAPORTAL
============================
<?xml version="1.0"
encoding="utf-8" ?>
<configuration>
<appSettings>
<add
key="Authentication" value="CSLA" />
<!-- TODO: update connection
strings as appropriate -->
<add key="DB:Security"
value ="data source=localhost; initial catalog=Security; integrated
security=SSPI" />
<add key="DB:TST"
value = "data source=localhost; initial catalog=TestDB; integrated
security=SSPI" />
</appSettings>
<system.runtime.remoting>
<application>
<service>
<wellknown mode="SingleCall"
objectUri="DataPortal.rem"
type="CSLA.Server.DataPortal, CSLA.Server.DataPortal" />
<wellknown mode="SingleCall"
objectUri="ServicedDataPortal.rem"
type="CSLA.Server.ServicedDataPortal.DataPortal,
CSLA.Server.ServicedDataPortal" />
</service>
<channels>
<channel
ref="http">
<serverProviders>
<provider ref="wsdl" />
<!-- TODO: comment the following two lines for .NET 1.0 -->
<formatter ref="soap" typeFilterLevel="Full" />
<formatter ref="binary" typeFilterLevel="Full" />
</serverProviders>
</channel>
</channels>
</application>
</system.runtime.remoting>
<system.web>
<!-- DYNAMIC DEBUG
COMPILATION
Set compilation debug="true" to insert debugging symbols (.pdb
information)
into the compiled page. Because this creates a larger file that executes
more slowly, you should set this value to true only when debugging and to
false at all other times. For more information, refer to the documentation
about
debugging ASP.NET files.
-->
<compilation
defaultLanguage="vb" debug="true" />
<!-- CUSTOM ERROR MESSAGES
Set customErrors mode="On" or "RemoteOnly" to enable custom
error messages, "Off" to disable.
Add <error> tags for each of the errors you want to handle.
-->
<customErrors
mode="RemoteOnly" />
<!-- AUTHENTICATION
This section sets the authentication policies of the application. Possible
modes are "Windows",
"Forms", "Passport" and "None"
-->
<authentication
mode="Windows" />
<!-- AUTHORIZATION
This section sets the authorization policies of the application. You can allow
or deny access
to application resources by user or role. Wildcards: "*" mean
everyone, "?" means anonymous
(unauthenticated) users.
-->
<authorization>
<allow
users="*" /> <!-- Allow all users -->
<!-- <allow users="[comma separated
list of users]"
roles="[comma separated list of roles]"/>
<deny users="[comma separated list of
users]"
roles="[comma
separated list of roles]"/>
-->
</authorization>
<!-- APPLICATION-LEVEL
TRACE LOGGING
Application-level tracing enables trace log output for every page within an
application.
Set trace enabled="true" to enable application trace logging.
If pageOutput="true", the
trace information will be displayed at the bottom of each page.
Otherwise, you can view the
application trace log by browsing the "trace.axd" page from your web
application
root.
-->
<trace enabled="false"
requestLimit="10" pageOutput="false"
traceMode="SortByTime" localOnly="true" />
<!-- SESSION STATE
SETTINGS
By default ASP.NET uses cookies to identify which requests belong to a
particular session.
If cookies are not available, a session can be tracked by adding a session
identifier to the URL.
To disable cookies, set sessionState cookieless="true".
-->
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user id=sa;password="
cookieless="false"
timeout="20"
/>
<!-- GLOBALIZATION
This section sets the globalization settings of the application.
-->
<globalization
requestEncoding="utf-8" responseEncoding="utf-8" />
</system.web>
</configuration>
Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
BusinessPrincipal.Logout()
BusinessPrincipal.Login("admin", "123")
If
Thread.CurrentPrincipal.Identity.IsAuthenticated Then
Dim test As BOATestList = BOATestList.GetTestList
MsgBox(test.Count) 'should return 5
End If
If Thread.CurrentPrincipal.IsInRole("Administrator") Then
MsgBox("Hi, Administrator!")
Also, your Logout method should be setting an Unauthenticated identity.
Andrés
No I use Version 1 (download from Rocky site: CSLA10vb-060519) and ASP.NET 1.1.4322
In this CSLA Framework there is no method ' BusinessPricipal.Logout () '
Also in Rocky's book (Chapter 8 Windows Forms UI) Sample application there is no method
BusinessPricipal.Logout()
mentioned.
I still assume it must have something todo with the configuration from either app.config/web.config or IIS or SQL2000Server.
The funny thing is I just found out that if I set the web.config and app.config to Windows instead of CSLA, then is works also remotely !!! know I am totally confused...., but at least it works
Anyway I am curious to learn how this works / not works if Authetication is set to CSLA as prescribed in Rocky's book.
See following configs which make my sample application run remotely using CSLA Security:
********* APP.CONFIG **********
<?
xml version="1.0" encoding="utf-8" ?><
configuration> <appSettings> <add key="Authentication" value="Windows" /> <!--<add key="DB:Security" value = "data source=localhost; initial catalog=Security; integrated security=SSPI" />
<add key="DB:TST" value = "data source=localhost; initial catalog=TestDB; integrated security=SSPI" />
--
> <add key="PortalServer" value="http://localhost/DataPortal/DataPortal.rem" /> <add key="ServicedPortalServer" value="http://localhost/DataPortal/ServicedDataPortal.rem" /> </appSettings></
configuration>********* WEB.CONFIG **********
<?
xml version="1.0" encoding="utf-8" ?><
configuration> <appSettings> <add key="Authentication" value="Windows" /> <!-- TODO: update connection strings as appropriate --> <add key="DB:Security" value ="data source=localhost; initial catalog=Security; integrated security=SSPI" /> <add key="DB:TST" value = "data source=localhost; initial catalog=chemtradmin; integrated security=SSPI" /> </appSettings> <system.runtime.remoting> <application> <service> <wellknown mode="SingleCall" objectUri="DataPortal.rem" type="CSLA.Server.DataPortal, CSLA.Server.DataPortal" /> <wellknown mode="SingleCall" objectUri="ServicedDataPortal.rem" type="CSLA.Server.ServicedDataPortal.DataPortal, CSLA.Server.ServicedDataPortal" /> </service> <channels> <channel ref="http"> <serverProviders> <provider ref="wsdl" /> <!-- TODO: comment the following two lines for .NET 1.0 --> <formatter ref="soap" typeFilterLevel="Full" /> <formatter ref="binary" typeFilterLevel="Full" /> </serverProviders> </channel> </channels> </application> </system.runtime.remoting> <system.web> <!-- DYNAMIC DEBUG COMPILATIONSet compilation debug="true" to insert debugging symbols (.pdb information)
into the compiled page. Because this creates a larger file that executes
more slowly, you should set this value to true only when debugging and to
false at all other times. For more information, refer to the documentation about
debugging ASP.NET files.
--
> <compilation defaultLanguage="vb" debug="true" /> <!-- CUSTOM ERROR MESSAGESSet customErrors mode="On" or "RemoteOnly" to enable custom error messages, "Off" to disable.
Add <error> tags for each of the errors you want to handle.
--
> <customErrors mode="RemoteOnly" /> <!-- AUTHENTICATIONThis section sets the authentication policies of the application. Possible modes are "Windows",
"Forms", "Passport" and "None"
--
> <authentication mode="Windows" /><!-- AUTHORIZATION
This section sets the authorization policies of the application. You can allow or deny access
to application resources by user or role. Wildcards: "*" mean everyone, "?" means anonymous
(unauthenticated) users.
--
> <authorization> <allow users="*" /> <!-- Allow all users --> <!-- <allow users="[comma separated list of users]"roles="[comma separated list of roles]"/>
<deny users="[comma separated list of users]"
roles="[comma separated list of roles]"/>
--
> </authorization> <!-- APPLICATION-LEVEL TRACE LOGGINGApplication-level tracing enables trace log output for every page within an application.
Set trace enabled="true" to enable application trace logging. If pageOutput="true", the
trace information will be displayed at the bottom of each page. Otherwise, you can view the
application trace log by browsing the "trace.axd" page from your web application
root.
--
> <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" /><!-- SESSION STATE SETTINGS
By default ASP.NET uses cookies to identify which requests belong to a particular session.
If cookies are not available, a session can be tracked by adding a session identifier to the URL.
To disable cookies, set sessionState cookieless="true".
--
> <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20" /> <!-- GLOBALIZATIONThis section sets the globalization settings of the application.
--
> <globalization requestEncoding="utf-8" responseEncoding="utf-8" /> </system.web></
configuration>Copyright (c) Marimer LLC