StrataFrame Forum

SecurityDataSourceKey :)

http://forum.strataframe.net/Topic29271.aspx

By Marek Jablonski - 12/28/2010

Hello guys,
I am newbe and of course have trouble

I made my own datasource class to  connecting   postgres db.
Everything is ok, but i cant use RBAC becasue.

I have two errors:

1.  If i correct understud i need indicate datasourcekey 


DataLayerException
  An error occurred while creating a new DataLayer for the business object.
DataLayerException
  The DataSourceKey [] is not defined.

Source     : MicroFour StrataFrame Business

Stack Trace: 
   w MicroFour.StrataFrame.Data.DataLayer.Create(BusinessLayer BusinessObject, ISynchronizeInvoke SyncObject, Boolean CheckDesignTime)
   w MicroFour.StrataFrame.Business.BusinessLayer.get__DataLayer()
   w MicroFour.StrataFrame.Business.BusinessLayer.FillDataTable(DbCommand CommandToExecute)
   w MicroFour.StrataFrame.Security.BusinessObjects.SFSUsersBO.FillByUserName(String UserName)
   w MicroFour.StrataFrame.Security.Login.AuthenticateUser(String Username, String Password, String Domain, SFSUsersBO& User)
   w MicroFour.StrataFrame.Security.Login.AttemptLogin(Object sender, EventArgs e)
   w MicroFour.StrataFrame.Security.LoginForm.OnAttemptLogin()
   w System.Windows.Forms.Control.OnClick(EventArgs e)
   w System.Windows.Forms.Button.PerformClick()
   w System.Windows.Forms.Form.ProcessDialogKey(Keys keyData)
   w System.Windows.Forms.Control.PreProcessMessage(Message& msg)
   w System.Windows.Forms.Control.PreProcessControlMessageInternal(Control target, Message& msg)
   w System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)



2. After set this:  SecurityBasics.SecurityDataSourceKey = STR_PgSQL
I have cast errorSad

InvalidCastException
  Nie można rzutować obiektu typu 'Devart.Data.PostgreSql.PgSqlConnection' na typ 'System.Data.SqlClient.SqlConnection'.

Source     : System.Data

Stack Trace: 
   w System.Data.SqlClient.SqlCommand.set_DbConnection(DbConnection value)
   w MicroFour.StrataFrame.Data.DbDataSourceItem.GetDataTable(DbCommand Command, OnChangeEventHandler CallBack)
   w MicroFour.StrataFrame.Data.DataLayer.GetDataTable(DbCommand Command, Boolean RegisterNotification)
   w MicroFour.StrataFrame.Business.BusinessLayer.FillDataTable(DbCommand CommandToExecute)
   w MicroFour.StrataFrame.Security.BusinessObjects.SFSUsersBO.FillAll(Int32 ProjectPK)
   w MicroFour.StrataFrame.Business.BusinessLayer.raise_ParentFormLoading()
   w MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.InitializeFormLoadObjects()
   w MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.OnLoad(EventArgs e)
   w System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   w System.Windows.Forms.Control.CreateControl()
   w System.Windows.Forms.Control.WmShowWindow(Message& m)
   w System.Windows.Forms.Control.WndProc(Message& m)
   w System.Windows.Forms.Control.ControlNativewindow.WndProc(Message& m)
   w System.Windows.Forms.Nativewindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

looking for help please, 
Sorry for gramma i still learn
Regards Mario
By Greg McGuffey - 12/28/2010

RBS only supports SQL server 2005+.  The BOs used by security all use SqlCommand objects (which is why your getting the cast error).  You can use separate databases for security and your app data though, so you could setup a SQL server instance just for security, then use Postgres for your data. 
By Marek Jablonski - 12/28/2010

THanks for quick replay.
I am sad :{
By Ivan George Borges - 12/28/2010

No need to be, Mario! Smile

It is a very simple task, and you can use an Express version of SQL Server just to house the security tables. the Database Deployment Toolkit will take care of creating the tables for you on the server. You set the SecurityDataSourcekey on your application and you are done.
By Russell Scott Brown - 12/29/2010

Thanks.  I didn't know this was possible but I guess it makes sense just never thought about it.

I am planning on writing applications that use VistaDB but the DDT and RBS don't work with it but this seems like an easy and cheap workaround.

Any plans for Strataframe to open up the DDT and RBS to non-SQL Server databases in 2011?