lunes, 2 de mayo de 2011

Crear usuario en Membership

Para registrar un usuario dentro de la base de datos creada usando



declare @salt nvarchar(128)
declare @password varbinary(256)
declare @input varbinary(512)
declare @hash varchar(64)


-- Change these values (@salt should be Base64 encoded)
set @salt = N'eyhKDP858wdrYHbBmFoQ6DXzFE1FB+RDP4ULrpoZXt6f'
set @password = convert(varbinary(256),N'contrasena')


set @input = hashbytes('sha1',cast('' as  xml).value('xs:base64Binary(sql:variable(''@salt''))','varbinary(256)') + @password)
set @hash = cast('' as xml).value('xs:base64Binary(xs:hexBinary(sql:variable(''@input'')))','varchar(64)')


-- @hash now contains a suitable password hash
-- Now create the user using the value of @salt as the salt, and the value of @hash as the password (with the @PasswordFormat set to 1)


DECLARE @return_value int, 
  @UserId uniqueidentifier 


EXEC @return_value = [dbo].[aspnet_Membership_CreateUser] 
  @ApplicationName = N'nombreaplicacion', 
  @UserName = N'nombreusuario', 
  @Password = @hash, 
  @PasswordSalt = @salt, 
  @Email = N'test@test.com', 
  @PasswordQuestion = N'Pregunta secreta', 
  @PasswordAnswer = N'Respuesta', 
  @IsApproved = 1, 
  @CurrentTimeUtc = '2011-04-03', 
  @CreateDate = '2011-04-03', 
  @UniqueEmail = 1, 
  @PasswordFormat = 1, 
  @UserId = @UserId OUTPUT 


SELECT @UserId as N'@UserId' 

jueves, 17 de febrero de 2011

Error al actualizar web service

Al trabajar con WCF y al hacer referencia al servicio que publica este como webservice, al actualizar el servicio se muestra el siguiente mensaje.

The maximum nametable character count quota (16384) has been exceeded whilereading XML data. The nametable is a data structure used to store strings encountered during XML processing - long XML documents with non-repeating element names, attribute names and attribute values may trigger this quota. This quota may be increased by changing the MaxNameTableCharCount property on the XmlDictionaryReaderQuotas object used when creating the XML reader.

Para corregir este error se tiene que agregar a la configuración del svutil.exe.config y del devenv.exe.config la siguiente configuración.


<system.serviceModel>
<client>
<endpoint name="net.tcp" binding="netTcpBinding" bindingConfiguration="GenericBinding" contract="IMetadataExchange"/>
</client>
<bindings>
<netTcpBinding>
<binding name="GenericBinding" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
<security mode="None"/>
</binding>
</netTcpBinding>
</bindings>
</system.serviceModel>


La configuración para el devenv.exe  esta:
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
La configuración del svutil.exe  esta:
C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin


Con el cambio hecho se tiene que reiniciar el IIS y el VisualStudio 2010.