Tuesday, July 30, 2013

Knockout.js binding syntax bind to root, self, current context

When using knockout.js if your ViewModel is an array and you want to bind to the entire ViewModel, the syntax to bind to the ViewModel root, when the root is the current context:




The XAML syntax equivalent when the DataContext is an array:




Hope this helps,
Aaron

Wednesday, July 17, 2013

ASP.NET MVC 4 SimpleMembershipProvider, WebMatrix WebSecurity CreateUserAndAccount Create New User SQL

----------------------
ASP.NET MVC 4 Membership Overview: http://aaron-hoffman.blogspot.com/2013/02/aspnet-mvc-4-membership-users-passwords.html
----------------------

Using SQL Profiler, below is the SQL that is executed when the ASP.NET MVC 4 SimpleMembershipProvider's WebMatrix.WebData.WebSecurity.CreateUserAndAccount() method is called:

Text below in bold is dynamic and represents the UserName and Password properties passed to the CreateUserAndAccount() method as well as the UserId generated as part of user creation.

Similarly, the name of the UserId and UserName columns, and the name of the UserProfile table may also be different based on your specific configuration.


exec sp_executesql N'SELECT [UserId] FROM [UserProfile] WHERE (UPPER([UserName]) = @0)',N'@0 nvarchar(23)',@0=N'UserName'

exec sp_executesql N'INSERT INTO [UserProfile] ([UserName]) VALUES (@0)',N'@0 nvarchar(23)',@0=N'UserName'

exec sp_executesql N'SELECT [UserId] FROM [UserProfile] WHERE (UPPER([UserName]) = @0)',N'@0 nvarchar(23)',@0=N'UserName'

exec sp_executesql N'SELECT COUNT(*) FROM [webpages_Membership] WHERE UserId = @0',N'@0 int',@0=UserId

exec sp_executesql N'INSERT INTO [webpages_Membership] (UserId, [Password], PasswordSalt, IsConfirmed, ConfirmationToken, CreateDate, PasswordChangedDate, PasswordFailuresSinceLastSuccess) VALUES (@0, @1, @2, @3, @4, @5, @5, @6)',N'@0 int,@1 nvarchar(68),@2 nvarchar(4000),@3 bit,@4 nvarchar(4000),@5 datetime,@6 int',@0=UserId,@1=N'PasswordHash',@2=N'',@3=1,@4=NULL,@5='2013-07-17 19:57:07.427',@6=0



Hope this helps,
Aaron

ASP.NET MVC 4 SimpleMembershipProvider, WebMatrix WebSecurity Login SQL

----------------------
ASP.NET MVC 4 Membership Overview: http://aaron-hoffman.blogspot.com/2013/02/aspnet-mvc-4-membership-users-passwords.html
----------------------

Using SQL Profiler, below is the SQL that is executed when the ASP.NET MVC 4 SimpleMembershipProvider's WebMatrix.WebData.WebSecurity.Login() method is called:

The UserName below (in bold) is dynamic, it represents the UserName parameter passed to the Login() method.

Similarly, the name of the UserId and UserName columns, and the name of the UserProfile table may also be different based on your specific configuration.

exec sp_executesql N'SELECT [UserId] FROM [UserProfile] WHERE (UPPER([UserName]) = @0)',N'@0 nvarchar(25)',@0=N'UserName'


exec sp_executesql N'SELECT COUNT(*) FROM webpages_Membership WHERE (UserId = @0 AND IsConfirmed = 1)',N'@0 int',@0=1


SELECT m.[Password] FROM webpages_Membership m, [UserProfile] u WHERE m.UserId = 1 AND m.UserId = u.[UserId]



exec sp_executesql N'UPDATE webpages_Membership SET PasswordFailuresSinceLastSuccess = 0 WHERE (UserId = @0)',N'@0 int',@0=1


Hope this helps,
Aaron