You are here:   Forum
Register   |  Login

 

Forum Notice

This Forum is ARCHIVE only
For LightSwitch questions,
please use the official forums at:

http://social.msdn.microsoft.com/forums/en-US/lightswitch/threads


Forums

Running external Application in an IFrame causes DotNetNuke to stop allowing users to log in
Last Post 13 Jul 2011 07:17 AM by admin. 7 Replies.
AddThis - Bookmarking and Sharing Button Printer Friendly
  •  
  •  
  •  
  •  
  •  
Sort:
PrevPrev NextNext
You are not authorized to post a reply.
Author Messages
Michael WashingtonUser is Offline
Send Private Message
Posts:1251
Avatar

--
30 May 2011 03:40 PM
    If you follow the example described here:

    http://lightswitchhelpwebsite.com/B...yment.aspx


    Everything will work just fone for about 5 minutes. then you will find that users cannot log into the DotNetNuke website anymore.

    The reason is that when they log in, the DotNetNuke core stored procedure, UpdateUser, gets stuck in a loop until it times out.

    When I reproduce this on my test machine, I can go into SQL Enterprise Manager and the following query will run until you stop it:

    exec dbo.UpdateUser @UserID=2,@PortalID=0,@FirstName=N'Administrator',@LastName=N'Account',@Email=N'Webmaster@ADefwebserver.com',@DisplayName=N'Administrator Account',@UpdatePassword=0,@Authorised=1,@RefreshRoles=0,@LastIPAddress=N'::1',@IsDeleted=0,@LastModifiedByUserID=-1

    The question of course is why? I can only suspsct it is that perhaps something odd is happening because the MachineKey was copied into the remote site and some bad parameters are now being passed to the stored procedure?

    I am trying to investigate this, but any ideas are appreciated!
    -----------
    Michael Washington
    http://LightSwitchHelpWebsite.com
    Michael WashingtonUser is Offline
    Send Private Message
    Posts:1251
    Avatar

    --
    30 May 2011 03:55 PM
    First update. It's not the paramteters passed to the stored procedure. I have another DotNetNuke website where I am the Admin Account and User 2. When I log in, the "UpdateUser" stored procedure in that site is run with the exact same parameters and it runs fine.



    Now I am looking "inside" the stored procedure...



    ALTER PROCEDURE [dbo].[UpdateUser]

    @UserID int,

    @PortalID int,

    @FirstName nvarchar(50),

    @LastName nvarchar(50),

    @Email nvarchar(256),

    @DisplayName nvarchar(100),

    @UpdatePassword bit,

    @Authorised bit,

    @RefreshRoles bit,

    @LastIPAddress nvarchar(50),

    @IsDeleted bit,

    @LastModifiedByUserID int

    AS

    UPDATE dbo.Users

    SET

    FirstName = @FirstName,

    LastName = @LastName,

    Email = @Email,

    DisplayName = @DisplayName,

    UpdatePassword = @UpdatePassword,

    LastIPAddress = @LastIPAddress,

    LastModifiedByUserID = @LastModifiedByUserID,

    LastModifiedOnDate = getdate()

    WHERE UserId = @UserID



    IF @PortalID IS NULL

    BEGIN

    UPDATE dbo.Users

    SET

    IsDeleted = @IsDeleted

    WHERE UserId = @UserID

    END

    ELSE

    BEGIN

    UPDATE dbo.UserPortals

    SET

    Authorised = @Authorised,

    RefreshRoles = @RefreshRoles,

    IsDeleted = @IsDeleted

    WHERE UserId = @UserID

    AND PortalId = @PortalID

    END
    -----------
    Michael Washington
    http://LightSwitchHelpWebsite.com
    Michael WashingtonUser is Offline
    Send Private Message
    Posts:1251
    Avatar

    --
    30 May 2011 04:13 PM
    This query (this is the first part of the "UpdateUser" stored procedure) simply will not complete when I try to run it in SQL Enterprise manager:

    DECLARE @RC int
    DECLARE @UserID int
    DECLARE @PortalID int
    DECLARE @FirstName nvarchar(50)
    DECLARE @LastName nvarchar(50)
    DECLARE @Email nvarchar(256)
    DECLARE @DisplayName nvarchar(100)
    DECLARE @UpdatePassword bit
    DECLARE @Authorised bit
    DECLARE @RefreshRoles bit
    DECLARE @LastIPAddress nvarchar(50)
    DECLARE @IsDeleted bit
    DECLARE @LastModifiedByUserID int

    -- TODO: Set parameter values here.
    Set @UserID=2
    Set @PortalID=0
    Set @FirstName=N'Administrator'
    Set @LastName=N'Account'
    Set @Email=N'Webmaster@ADefwebserver.com'
    Set @DisplayName=N'Administrator Account'
    Set @UpdatePassword=0
    Set @Authorised=1
    Set @RefreshRoles=0
    Set @LastIPAddress=N'::1'
    Set @IsDeleted=0
    Set @LastModifiedByUserID=-1

    UPDATE dbo.Users
    SET
    FirstName = @FirstName,
    LastName = @LastName,
    Email = @Email,
    DisplayName = @DisplayName,
    UpdatePassword = @UpdatePassword,
    LastIPAddress = @LastIPAddress,
    LastModifiedByUserID = @LastModifiedByUserID,
    LastModifiedOnDate = getdate()
    WHERE UserId = @UserID


    What could cause this? I have to stop and re-start SQL Server to get everything back to normal
    -----------
    Michael Washington
    http://LightSwitchHelpWebsite.com
    Michael WashingtonUser is Offline
    Send Private Message
    Posts:1251
    Avatar

    --
    30 May 2011 04:24 PM
    Ok the Users table is simply locked when this happens. It is nothing special about the "UpdateUser" stored procedure. Also it is only the "Admin" record in the User table. I can edit any other row but that one.

    So the question is now, what is locking that row in the users table?
    -----------
    Michael Washington
    http://LightSwitchHelpWebsite.com
    Michael WashingtonUser is Offline
    Send Private Message
    Posts:1251
    Avatar

    --
    30 May 2011 06:55 PM
    Ok it appears I have tracked this down.

    I needed to determine if the current user is an Administrator or not in my external LightSwitch application. the problem is LightSwitch places locks on tables when you connect to external data sources.

    So when I connected to the DotNetNuke Users table, LightSwitch locks the rows it is using. Locking the DotNetNuke Users table is a no no. The thing that sucks is I also get this even if I am using a View (like vw_UserRoles)

    I can use others methods such as a web service to get the information I need.

    The good news is that this is only related to connecting to DotNetNuke as an external datasource NOT related to running LightSwitch in an IFrame with DotNetNuke.
    -----------
    Michael Washington
    http://LightSwitchHelpWebsite.com
    Michael WashingtonUser is Offline
    Send Private Message
    Posts:1251
    Avatar

    --
    04 Jun 2011 07:28 AM
    A final note on this. The answer is to use a WCF RIA Dataservice. This is what I am using in the Things For Sale example at: http://lightswitchhelpwebsite.com/D...rSale.aspx
    -----------
    Michael Washington
    http://LightSwitchHelpWebsite.com
    SpartanUser is Offline
    New Member
    New Member
    Send Private Message
    Posts:14
    Avatar

    --
    13 Jul 2011 07:08 AM
    One question I had is...how do you get your site to run so fast with DNN?  Is there any special configuration/hosting that you use?
    Michael WashingtonUser is Offline
    Send Private Message
    Posts:1251
    Avatar

    --
    13 Jul 2011 07:17 AM
    -----------
    Michael Washington
    http://LightSwitchHelpWebsite.com
    You are not authorized to post a reply.


    Latest Microsoft Visual Studio LightSwitch Forum Threads That Have Answers

    Hi, I'm not sure if submitting question in right forum (LightSwitch or TFS). In my company we have a solution developed in Visual Studio 2012 LightSwitch and into App.Server layer we consume an ApplicationDataService.svc (OData) and a WCF Service. I created a build definition into TFS to schedule a daily building and publishing of App. At first Build Definition worked perfectly but for some reasons it runs into an error whose log results shows among others, as follows: PrepareForBuild: Creando directorio "bin\Debug\". LSSvcGenerators: Quitando el directorio "C:\TFSAgent\_work\1\s\0-Development\OmniMerchant\OmniMerchant.Server\GeneratedArtifacts\GeneratedSvcFiles\". Creando directorio "C:\TFSAgent\_work\1\s\0-Development\OmniMerchant\OmniMerchant.Server\GeneratedArtifacts\GeneratedSvcFiles\". Generación completada Copiando el archivo de
    Read more...

    This is actually a note to the community, not a question. related archived & unanswered post If you attempt to post to a LOB field (CLOB, BLOB, NCLOB etc.), lightswitch will reply with an error because of the expected datatype. (ex: ORA-00932: inconsistent datatypes: expected - got NCLOB). This is because Lightswitch is expecting a RowVersion field for concurrency like in a SQL Server DB. A workaround is to modify the .lsml file for the table located in project folder > Server > DataSources > [your db name] > [your table name with LOB field]. Locate the table and add this tag '<UseForConcurrency />' under the field you use for the primary key. Lightswitch will now allow you to enter the data without the error. <KeyProperty Name="MyKeyField_PK" PropertyType=":Int32"> <KeyProperty.Attributes> <Hidden /> <Required /> <NotSearchable />
    Read more...

    i just learn LightSwitch and read some articles guide (like Beth Massi 's post...), follow some guide like https://blogs.msdn.microsoft.com/lightswitch/2012/01/12/drop-down-lists-tips-tricks-beth-massi/  .... In My Visual Stuido 2015, LightSwitch HTML, i dont find any control like "Data Modal Picker", just only "Detail Picker", and cant find option like "Support Search/Sorting", only Support Paging. So in my build html client "BrowseCities" page, when i click State, it popup list State,  but i cant see the Search option above the list  So.... my Visual Studio or my project missing something? or LightsSwitch doesn't support it to HTML Client?
    Read more...

    hello does anyone has a VS LightSwitch Security Admin running in the browser? i tryed it with the MVC version (see title, http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/3281/An-HTML-MVC-LightSwitch-Security-Administration.aspx) from the LS help website. well this works so fare in the localhost in VS 2015, but in the published version in azure or local server the admin link does not appear when i log in as an admin. and when i use the direct URL to the admin page no users are listed even when they are in the SQL db! has anyone a Idee what the Problem is and how to fix this? thanks for your support marcel
    Read more...

    This may sure be a beginner question, but I looked everywhere for the answer before asking here. I'm using VS 2015, and all is updated. When I create a desktop application in Lightswitch, everything works as advertised, but when I design an HTML version of a project (from scratch, even), buttons don't show up on the screen when I place them in a command bar. Also, If I select a screen "set" to use for a view/edit combination, only the main view screen appears, with no navigation buttons to the edit (or add new) screen. I'm using MySQL data, connected with .net, and wonder if this might be a limitation. It does work properly with the desktop Lightswitch apps I've generated.  All of the tutorials, books, and blogs I've read lead me to think I'm doing things correctly, but either I'm not, or something is not working correctly with my configuration. I've tried various combinations of screen types and placing the command bar at various points in the page layout, but
    Read more...

    1234
    Microsoft Visual Studio is a registered trademark of Microsoft Corporation / LightSwitch is a registered trademark of Microsoft Corporation