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:1023
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:1023
    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:1023
    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:1023
    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:1023
    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:1023
    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:1023
    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

    I'm using the latest HTML client (whichever update was released in March, I have it installed on VS 2013) and trying to see if the following is possible.  I have two tables, Parent and Child, in a one to many relationship. Can I somehow 'pass' the Parent entity to the Child's AddEditNew screen, as a parameter, then on that Add/Edit Child screen have a button that does something like this?  (pseudo code ahead)     myapp.AddEditChild.SaveThisChild_execute = function (screen) {    var newChild = new myapp.Child();          newChild.Parent = screen.Parent; //how do you 'pass' the parent to this screen?          myapp.ApplyChanges();         }; That's the idea at least.  Trying to see what's possible and stretch my understanding of the HTML client and its add/edit/save pipeline as much as I can. I have to admit that one of my weak points
    Read more...

    I've been working on a sample LS app using the latest VS 2013 updates.  Intrinsic database and HTML client. I have an Azure account I just signed up for and am trying to get this in the cloud as easily as possible.  At this stage security etc have no role in the app.  Could someone point me to a page/blog/how-to on the best way of doing this?  I've been reading up and it seems I have to right-click the server and client apps separately and tell them to publish to Azure?  Is there a solution-wide way of publishing both or a best-practice for doing each? In VS 2013 I'm being prompted for all kinds of Azure/Windows installers when I try to publish.  Not sure which of those I need specifically-- by that I mean I see options for Azure/Node and Azure/PHP publishing in the list of options, which I certainly don't need. And all told the options all add up to 450MB for me to download, so I'd like to keep the footprint as small as possible. 
    Read more...

    I'm writing a Lightswitch HTML app that allows users to upload and view an image associated with a person. I've split the image out into it's own table and given it a 0.1 - 1 relationship with the Person table with the idea that if I don't include the image in the Person browse screen, my records would load much faster. Am I correct in this assessment or is Lightswitch loading the image anyway because of the relationship I declared with the Person table? (I'm not familiar with the data envelope choice Lightswitch makes.) Also, if it is loading the image anyway, then how would you recommend I ensure screen responsiveness for a Person Browse screen? Thanks. - Mike
    Read more...

    Getting started with RIA
    4/11/2014 4:09 PM
    I'm still baffled by RIA. Never done anything with WCF and running into limitations of having to return data in exact shape as entities. have worked around some of these with SQL views due to time limitations.  I have a few dumb questions. I read many of the links about lightswitch and RIA, but don't understand much of the terminology (e.g. Domain services), so I'm lost almost straight away. I'm willing to buy a book or take a course on plural sight or wherever, but want to make sure i choose the right one as there are very few books specific to LS and I don't want to waste time learning the wrong subject. I have a desktop silverlight app that's deployed via a UNC path. What's required to use RIA? I'm assuming it's going to involve having to use IIS and creating a WCF service(?) on the IIS server to consume the http calls. Or have I got completely wrong, is RIA services something that runs in the silverlight app (and still sends call to SQL server --not via
    Read more...

    Hello, I am using LightSwitch HTML client (March 2014 Update). I have an edit screen and I want the user to stay on this screen after the save button is used. A possible solution would be to use the "afterClosed" option when navigate to the edit screen. Is there a more elegant solution that will help me to accomplish this requirement without navigate to the browse screen and then go back to the edit screen? Regards, Martin
    Read more...

    1234

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