I am trying to create a user using claim identity asp.net I get this error while creating claims identity user.
ApplicationUser user = new ApplicationUser { EmailConfirmed = true, UserName = model.myUser.Email, Email = model.myUser.Email , PhoneNumber = model.myUser.PhoneNumber, PhoneNumberConfirmed = true, UserImagePath = model.myUser.UserImagePath, FirstName= model.myUser.FirstName, LastName = model.myUser.LastName, DateOfBirth = model.myUser.DateOfBirth, Culture = model.myUser.Culture, Role = model.myUser.Role };
but when the code was
var user= new ApplicationUser { UserName = model.myUser.Email, Email = model.myUser.Email , };
it worked perfectly, so i want to know what is wrong
You have a statement (if or while, for example), right before the code you posted, without curly braces.
For example:
if (somethingIsTrue) { var user= new ApplicationUser { UserName = model.myUser.Email, Email = model.myUser.Email , }; }
is correct, but the code below:
if (somethingIsTrue) var user = new ApplicationUser { UserName = model.myUser.Email, Email = model.myUser.Email , };
will result in CS1023: Embedded statement cannot be a declaration or labeled statement.
The reason, according to @codefrenzy, is that the newly declared variable will immediately go out of scope, unless it is enclosed in a block statement, where it can be accessed from.
The compilation will pass in the following cases though.
If you only initialize a new instance of a type, without declaring a new variable:
if (somethingIsTrue) new ApplicationUser { UserName = model.myUser.Email, Email = model.myUser.Email , };
or if you assign a value to an existing variable:
ApplicationUser user; if (somethingIsTrue) user = new ApplicationUser { UserName = model.myUser.Email, Email = model.myUser.Email , };
I just had this error, and the fix was to add a curly brace to the if immediately preceding my code, and then remove it again. Visual Studio facepalm OTD.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With