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 08: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:1141
Avatar

--
30 May 2011 04: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:1141
    Avatar

    --
    30 May 2011 04: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:1141
    Avatar

    --
    30 May 2011 05: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:1141
    Avatar

    --
    30 May 2011 05: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:1141
    Avatar

    --
    30 May 2011 07: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:1141
    Avatar

    --
    04 Jun 2011 08: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 08: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:1141
    Avatar

    --
    13 Jul 2011 08: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

    HTML Grid Row Color
    12/16/2014 11:28 AM
    Using the HTML table, I'm trying to apply a background color to certain rows based on a value in one of the columns.  I'm using Rohit Agrawal's approach in his blog post, Spice Up Your HTML Client UI With Code.   Basically I'm setting the css background attribute for the row element to the desired color.  The problem I am having is that there is a default alternating row color  being applied of a very light grey.  That is overriding the red color I am trying to set.  In the screen shot below, the first two rows should be colored.  The second row is fine, because it normally does not have a background color due to an alternating row.  The first row, however, is not being colored as desired.  The alternating light grey color is overriding the color I am setting.  Does anyone have any help or insight into this issue?   Thank you, Binu Agrawal 
    Read more...

    Hi, The LS team stopped short of enabling runtime dynamic OData connections, so I thought I'd take a stab at it.  Turns out we can change the Odata Uri at runtime using an event handler for BuildingRequest method of the DataServiceContext.  The following code works to change the Uri at runtime.  Imports System.Data.Services.Client Imports LightSwitchApplication Namespace ApplicationData.ApplicationDataService Partial Public Class ApplicationData Inherits Global.System.Data.Services.Client.DataServiceContext Private Sub OnContextCreated() AddHandler Me.BuildingRequest, AddressOf OnBuildingRequest AddHandler Me.SendingRequest2, AddressOf OnSendingRequest2 End Sub Private Sub OnBuildingRequest(sender As Object, buildingRequestEventArgs As BuildingRequestEventArgs) Dim stUri As String = buildingRequestEventArgs.RequestUri.ToString stUri = Replace(stUri,
    Read more...

    Angularjs in Lightswitch HTML
    12/13/2014 5:59 PM
    I've tried to implement Jan Van Bladels article http://app.pragmaswitch.com/CrudGrid/ng-app/index.html and unlike other articles I have seen this one doesn't seem to involve mvc and app_start and so on, everything is done client side? I am able to access the index.html file at http://localhost:somenumber/HTMLClient/ng-app/index.html If I click the HTML client, I am redirected to the LS Browse screen I set up. There I have one post that I made in the LS client. However I can't seem to get this to show in the custom index.html file? If I click Add, nothing happens no modal window sliding down(guess I must make some .html file for this?), but the save button turns red, if i click this I get an error message saying "An error occured. Cannot read property 'extend' of undefined" However it is saved to the db, but as a blank post. I have uploaded the project to OneDrive https://onedrive.live.com/redir?resid=48547E6FC0593A30%21434 If anyone please could take a look at
    Read more...

    When I link a SharePoint Document Library (on Office 365 / SharePoint Online dev site, same host web as Cloud Business App), I receive the error "Error retrieving document library information" when I try to add a document while running the app in debug mode (comes up as an ajax dialog while I'm in the app). I see the Add Documents button, and when I click it, I get the Word / Excel / PowerPoint / Upload flyout menu, but receive the other error after awhile (30 or more seconds later) when I click one of those four options. Has anyone else seen this before? I  have verified my permissions to the document library. The connections seem to be set up fine, and the GUID column in the source (SQL Azure DB) and the document library (external) are properly related (one SQL entry-to-many Documents). The GUID column in the parent data source is properly populated and displayed.
    Read more...

    Hi I am not able to deploy LightSwitch Cloud Bussiness App to Azure. It gives me the error: An exception occurred when deploying the database for the application. An error occurred during deployment plan generation. Deployment cannot continue. I have tried deploying for two different project as this thread says, but no luck. I have tried creating a new azure website and deploying my app there, but still the error is same. Help Please. Regards, Nirav Nirav Maisuriya SharePoint Developer Evonious Technologies
    Read more...

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