archivos mensuales: Junio 2008

Junio 2008 Conferencia SUGDC — Es un abrigo

Asistí a mi primera vez Conferencia de SharePoint Este pasado fin de semana y fue una explosión.

Jueves por la tarde, Conduje hasta Virginia, guiado por mi recién adquirido $50 Lo plug-in de dispositivo de GPS a mi teléfono. El dispositivo fue impecable. Después de la impulsión de cinco horas, Tenía la energía para hacer una buena racha en el molino de la banda de rodadura y luego, aún más sorprendente, tenía la energía a la cabeza en el vestíbulo para la hora del cóctel de un altavoz anunciado. Conferencia n00b que soy, Resultó que la hora del cóctel fue realmente una artimaña para que los oradores aparecieran y ayudaran a llenar los papeles y llevarlos en las bandoleras de los asistentes a la conferencia 🙂

Tenía problemas para dormir porque estaba hablando lo primero el viernes AM. Nerviosismo, una sensación molesta que necesitaba añadir una diapositiva a mi presentación y un espectáculo de gato muy inquietante en Animal Planet me mantuvo tarde. Desde que me fui a dormir tarde, Naturalmente levantarme temprano. Añadir una diapositiva de arquitectura técnica bastante detallada. Estaba bien vale la pena el esfuerzo porque la 25 minutos de Q&A habría sido muy incómodo sin ella. Tuve la suerte de conseguir la primera ranura de la pista de técnica. Sahil Malik originalmente iba a hablar el viernes y que iba a hablar el sábado pero necesitaba intercambiar veces. Esto me permitió hacer mi presentación y luego sentarse y todo lo que va del viernes y el sábado disfrutar de.

La presentación ha ido bien. Definitivamente tengo que mejorarlo. Hablé sobre cómo podemos acceder a y utilizar servicios web de un flujo de trabajo de SharePoint Designer mediante una acción personalizada. Con el tiempo, Te ataré esta información en mi serie en EUSP.com para los usuarios finales tratando de conseguir la mayoría del uso de esa herramienta. Sopló a través de mis diapositivas y demo en 35 minutos, para mi consternación al tiempo. Por suerte, Q&Estaba animado, sin duda ayudado por el hecho de que era temprano en la mañana antes del almuerzo. Q&Es mi parte favorita de cualquier presentación.

Había muchos temas interesantes y espero que esta semana al blog sobre ellos con mayor detalle (tiempo lo permite, como siempre). Un compañero de CMS Watch proporcionó una revisión altamente crítica y esperanzadora de la posición de SharePoint en el mercado. Una discusión diferente centrado en la escasez de recursos de SharePoint y la dificultad que los reclutadores tienen búsqueda de buen talento que también es «asequible" en este mercado muy ajustado. El tipo de CMS Watch se refirió a la piscina de los recursos humanos de SharePoint como un "gremio." Estoy principalmente familiarizado con ese término en términos MMORPG y me dio una emoción poco, para ser honesto 🙂

El punto culminante de la Conferencia era reunión y ponerse al día con la gente "" en línea por un tiempo. Lo mejor estaba sentado en el bar Becky Isserman (MossLover) para 3 o 4 horas (y eso, después de que terminé de beber por la noche). Muchas veces no llego a hablar Farscape o Babylon 5 con los residentes de Kansas City.

Bob Fox estaba allí y como de costumbre, es un torbellino de intros, chats y simplemente energía frenética. Me invitó a tomar el desayuno sábado con Sahil Malik y que fue gran.

Sábado (día 2), Mike Lotter arrastró a la Conferencia para hablar de InfoPath y luego se unió a Becky al final del día para hacer a una especie de general Q&Una sesión sobre 30 Para 45 minutos centrados principalmente en InfoPath (Mike) y AJAX (Becky). Ojalá Becky había sido capaz de ir a través de su presentación de full/formal pero estoy seguro de que obtendrá una oportunidad de ver que uno de estos días. Tengo la sensación que va ser "golpear el circuito" en el futuro.

Yo podría seguir y seguir. Dos últimos puntos — el objetivo financiero de la conferencia era recaudar fondos para Miracle Network los niños y se planteó $5,000. Eso fue impresionante. Finalmente, Quiero agradecer públicamente a Gary Blatt, Gary Vaughn y Bob Fox para me alertas y que me permitan hablar en la Conferencia. Claro, los dos Gary tenía un equipo de personas apoyando y organizando y todos fueron increíbles. Tuve altas expectativas antes de que fui y fue mejor de lo que esperaba para.

Mantener la alerta para la siguiente conferencia programada para el 7 de noviembre y 8. Aparte de un gran contenido, es estupendo para reunión con todas esas personalidades en línea que has conocido a través de blogs, Twitter, foros, etc..

</final>

Suscribirse a mi blog.

Etiquetas de Technorati:

FBA y SQL Server: Una historia de amor

Mi colega ha estado trabajando en un elemento web en un entorno de FBA. Entre otras cosas, la parte web tira algunos datos de SQL server. El gran plan para este proyecto dicta que un DBA configura la seguridad a nivel de datos en SQL (en lugar de incrustar un ID de usuario en una consulta SQL o algún otro método).

El problema es que SQL server no sabe nada sobre nuestro entorno de FBA para que no puede confiar en nosotros. Solucionamos este problema por, falta de una palabra mejor, manualmente, haciéndose pasar por un usuario de AD que nos podríamos conectar a SQL que datos SQL nivel seguridad trabajos.

Aunque FBA es una característica ASP.NET, gente de SharePoint Nation hemos enseñado los diferentes buscadores si usted está consultando FBA, debe decir que usted quiere saber cómo configurar FBA en SharePoint. No se pudo encontrar encontrar cualquier información sobre cómo habilitar una FBA orientado a la aplicación ASP.NET para comunicarse con SQL de la manera que necesitábamos.

En el transcurso de esta investigación, podemos volver a leer este artículo: Suplantación de ASP.NET

Más investigación nos llevó a este artículo de codproject: http://www.codeproject.com/KB/cs/cpimpersonation1.aspx

Eso nos ayudó a escribir el código, que he incluido a continuación. No es lo más elegante, pero funcionó. Espero que encuentres útil.

Aquí está el código que trabajó para nosotros:

protegido void btnSearchCarrier_Click(remitente del objeto, EventArgs e)
 {
 Intente
 {
 ImpersonateUser iU = Nuevo ImpersonateUser();
 // TODO: Reemplazar las credenciales iU.Impersonate("NombreDeDominio", "UserName", "Contraseña");

//
 CÓDIGO
//

 iU.Undo();
 }
 capturas (Exception ex)
 {

 }
 }

// Utilizar suplantación clase mencionadas anteriormente.

público clase ImpersonateUser
 {
 [DllImport("advapi32.dll", SetLastError = verdadero)]
 público estática extern bool LogonUser(
 Cadena lpszUsername,
 Cadena lpszDomain,
 Cadena lpszPassword,
 int dwLogonType,
 int dwLogonProvider,
 Ref PhToken IntPtr);

 [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
 privada extern estática bool CloseHandle(Manija de IntPtr);

 privada estática IntPtr tokenHandle = Nuevo IntPtr(0);
 privada estática WindowsImpersonationContext impersonatedUser;

 // Si incorporan este código en un archivo DLL, Asegúrese de es la demanda
 // funciona con FullTrust.
 [PermissionSetAttribute(SecurityAction.Demand, Nombre = "FullTrust")]
 público Suplantar a vacío(cadena de nombre de dominio, String userName, contraseña de la cadena)
 {
 Intente
 {

 // Utilice la función LogonUser no administrada para conseguir token para el usuario
 // el usuario especificado, dominio, y la contraseña.
 Const int LOGON32_PROVIDER_DEFAULT = 0;

 // Este parámetro causa LogonUser crear un token primario.
 Const int LOGON32_LOGON_INTERACTIVE = 2;
 tokenHandle = IntPtr.Zero;

 // Paso -1 Llamar a LogonUser para obtener un identificador para un token de acceso.
 bool returnValue = LogonUser(
 nombre de usuario,
 nombreDeDominio,
 contraseña,
 LOGON32_LOGON_INTERACTIVE,
 LOGON32_PROVIDER_DEFAULT,
 Ref tokenHandle); // tokenHandle - nuevo token de seguridad

 Si (== false returnValue)
 {
 int ret = Marshal.GetLastWin32Error();
 Console.WriteLine("LogonUser llamada failed with error code : " +
 RET);
 tiro nuevo System.ComponentModel.Win32Exception(RET);
 }

 // Paso - 2
 WindowsIdentity nuevo ID = Nuevo WindowsIdentity(tokenHandle);
 // Paso -3
 impersonatedUser = newId.Impersonate();

 }
 capturas (Exception ex)
 {
 Console.WriteLine("Excepción. " + ex.Mensaje);
 }
 }


 /// <Resumen>
 /// Suplantación de paradas
 /// </Resumen>
 público Deshacer vacío()
 {
 impersonatedUser.Undo();
 // Los tokens gratis.
 Si (tokenHandle != IntPtr.Zero)
 CloseHandle(tokenHandle);
 }
 }

</final>

Suscribirse a mi blog.

Etiquetas de Technorati:

Agregar al Lore: Me dice SSRS “rsAccessDenied”, Pero … Realmente tengo acceso

Unas semanas atrás, Estaba trabajando con mi colega Desarrollador en un proyecto SQL Server Reporting Services complemento para musgo. Él estaba desarrollando un elemento web que proporciona un front-end para el informe adecuado de lujo (la principal característica de ser una búsqueda inteligente de un parámetro con varios valores de búsqueda mil detrás).

Esto estaba trabajando mucho en el entorno de desarrollo, pero en las pruebas de aceptación de usuario (UAT) medio ambiente, no funciona. Leña para el depurador, veríamos detalles de excepción como éste:

Los permisos conceden al usuario 'UAT_domainmosssvc' no son suficientes para realizar esta operación.(rsAccessDenied).

Si haces una búsqueda de vivir en el error anterior, encontrará que es muy común. Aterradoramente común. La peor clase de común ya que tiene muchas raíces posibles diferentes causas y Solución sugerida de todos "se siente" derecho. Probablemente todos ellos intentamos.

En nuestro caso, el problema era que habíamos hecho un backup y restore de DEV a la UAT. En algún lugar de los datos, algo todavía se refería a "DEV_domain" (en lugar de la "UAT_Domain" actualizada). Hemos creado un nuevo sitio, agregado que el elemento web y resolver nuestro problema.

Esperemos que esto ahorrará alguien una hora o dos en la línea.

</final>

Suscribirse a mi blog.

Etiquetas de Technorati:

Quick Fix: Acceder al sitio de SharePoint lanza [HttpException (0x 80004005): Solicitud agotado.]

Uno de mis colegas de desarrollador estaba trabajando en un proyecto de esta semana y se topó con un problema de tiempo de espera mientras se trabaja en la construcción de una parte de la web loco. Su parte de la web estaba bien, pero "repentinamente" un sitio relacionado se hizo muy lento y con frecuencia agotó con este error:

[HttpException (0x 80004005): Solicitud agotado.]

Conectado y vi que varios otros sitios eran muy bien. Sospeché que había algunas partes ocultas de la web en la página y el uso de el fiel ?contenido = 1 técnica de depuración, De hecho he encontrado 11 elementos en la página de Web, sólo dos de los cuales eran visibles. Mejor aún (desde una perspectiva let's-hope-I-find-something-ugly-here-that-I-can-fix), tres de esos elementos web cerrada tenían el nombre de "Error".

He eliminado los elementos web (que se llevó un tiempo sorprendentemente) y que soluciona el problema. Para hoy 🙂

</final>

Suscribirse a mi blog.

Etiquetas de Technorati:

Formación rápida en su clase es excelente

Estoy comenzando día 4 de rápida del socio formación dirigida por Larry Kaye aquí en Needham, MA.

Esta sesión de cinco días se divide en clases (3 y 2 días respectivamente) titulado "FAST ESP: Desarrollo de aplicaciones de búsqueda personalizada para Alianza socios I" y "FAST ESP: Desarrollo de aplicaciones de búsqueda personalizadas para socios de la Alianza II".

Esta es una clase de tipo real boot camp. El material es profundo (muy, muy profundo). El instructor (Larry) claramente sabe lo. Recomiendo este entrenamiento si usted teniendo en cuenta que.

</final>

SharePoint y rápido — Tazas de mantequilla de maní de Reese de aplicaciones empresariales?

He terminado de día 2 de rápida formación en Needham soleado, MA, y estoy rebosante de ideas (me hacen que todas las clases de la buena formación). Un aspecto particular de rápido me tiene pensando y quería escribirlo mientras que estaba todavía fresco y normal día a día "cosas" lo empujó fuera de mi cabeza.

Tenemos SharePoint WSS 3.0 / Los implementadores de MOSS con frecuencia enfrentan un problema difícil con cualquier proyecto de SharePoint tamaño razonablemente: ¿Cómo hacemos que todos los datos sin etiquetar cargados en SharePoint que todo encaja dentro de la arquitectura de la información perfectamente diseñado?

A menudo bastante, Esto no es un problema tan difícil porque nosotros mismos nos alcance fuera de problemas: "No nos importa nada más 3 meses de edad." "Lo manejamos cosas tan viejas con búsqueda por palabra clave y va adelante lo haremos a la manera correcta…" Etc..

Pero, Qué sucede si no podemos alcance nosotros mismos fuera de problemas y estamos viendo decenas de miles o cientos de miles (o incluso millones) de docs — la carga y etiquetado de cual es nuestro deseo devoto?

RÁPIDA podría ser la respuesta.

Proceso de búsqueda de FAST incluye una gran cantidad de piezas móviles, pero esto es una visión simplificada:

  • Un proceso sobre orugas busca contenido.
  • Se encuentra contenido y lo toquen a un proceso intermediario que gestiona un conjunto de procesadores de documento.
  • Corredor proceso toquen a uno de los procesadores de documento.
  • El procesador del documento analiza el documento y a través de un proceso de tubería, analiza la bejeezus del documento y lo toquen a un proceso de tipo generador de índice.

En la nave rápida, tenemos un montón de control sobre el documento de canalización de proceso. Podemos mezclar y combinar sobre 100 los componentes de la tubería y, más Interesantemente, podemos escribir nuestros propios componentes. Como yo digo, RÁPIDO está analizando documentos de todos los sentidos pero el domingo y recopila mucha información útil acerca de los documentos. Esos locos rápidos son claramente insano y obsesivo sobre el análisis del documento porque tienen herramientas o estrategias que realmente clasificar documentos.

Por lo tanto … usar en combinación con nuestro propio componente de canalización personalizado, podemos tomar toda esa información de contexto de rápido y alimentación a MOSS. Podría ir a algo como esto:

  • Documento alimenta rápidamente de MOSS.
  • Categorización y análisis del normal loco-obsesivo documento rápido pasa.
  • Nuestro propio componente de canalización personalizado gotas de esa información de contexto de una base de datos.
  • Un proceso de nuestro propio diseño Lee la información de contexto, algunas decisiones sobre cómo encajar ese documento MOSS dentro de nuestro IA y marca usando un servicio web y el modelo de objetos.

Claro, No tal proceso automatizado puede ser perfecto, pero gracias a la obsesiva (y posiblemente insane-but-in-a-good-way rápido), puede que tengamos una verdadera lucha disparó un proceso verdaderamente eficaz de la carga total que más que llenar una base de datos SQL con un montón de documentos apenas-búsqueda.

</final>

Suscribirse a mi blog.

Etiquetas de Technorati: , ,

Aprender acerca de los usuarios finales en www.EndUserSharePoint.com

Mark Miller sobre en http://www.endusersharepoint.com ha construido, en mi experiencia, el usuario final mejor centrado sitio de SharePoint en la ' esfera. En el último mes, se alistó algunos de los bloggers de premier para el usuario final se centró alrededor para contribuir a la "página frontal" sobre una base regular, incluyendo pero no limitado a Paul Culmsee, Chris Quick, y Dese Lunsford. Él tiene otros alineado y listo para contribuir como sus horarios permiten.

Salté sobre la oportunidad de participar y mi post inaugural está aquí. Escribo una serie sobre cómo usar SharePoint Designer para crear soluciones de flujo de trabajo de primera clase de negocios. En consonancia con el enfoque de la EUSP.com, esos artículos siempre mantendrá el centro y frente de usuario final.

Personalmente tiendo a dividir el mundo de SharePoint en tres grandes grupos: Consultores de SharePoint, tiempo completo SharePoint personal desarrolladores y usuarios finales. Cuando escribo, A menudo pregunto, que estos grupos podrían estar interesados en el tema? Mayoría de las veces, Termino escribiendo para los dos primeros (técnica) grupos, principalmente porque yo mismo soy un consultor; siempre es más fácil y más auténtica a escribir sobre aquellas cosas con las que estás más familiarizado a nivel personal.

Como he señalado antes, la comunidad de usuarios finales es mucho, mucho más grande que la comunidad técnica. EUSP.com es excelente y lo recomiendo sinceramente a todos los grupos de tres. Enfoque de láser del sitio es evidentemente valioso para los usuarios finales. Sin embargo, desarrolladores y consultores sólo podemos ser mejores en nuestra profesión si podemos comprender y responder efectivamente a las necesidades de los usuarios que atendemos. Sé que necesito toda la ayuda que pueda obtener 🙂 Check it out.

</final>

Suscribirse a mi blog.

Etiquetas de Technorati: ,

Invocar servicios Web SSRS de WSS / MOSS en entorno de FBA

Necesitábamos invocar la CreateSubscription"" método de un servicio web SSRS que está alojado en una FBA MOSS entorno administrado desde un elemento web personalizado. Seguimos recibiendo las variaciones de:

  • 401: No autorizado
  • Objeto movido

El "objeto movido" mensaje fue más interesante porque decía que el objeto"" (nuestro servicio SSRS) había "trasladado" a login.aspx. Esto significaba claramente que tenía algún tipo de problema de autenticación.

Finalmente me di cuenta que tenía marcado una entrada de blog por Robert Garret describe cómo invocar un servicio de web WSS/MOSS de propósito general viviendo dentro de un entorno de FBA. Tenga en cuenta que no puedo ligar directamente al artículo (como de 06/09/08) porque quiere autenticar. El enlace que proporciono te lleva a un "todos los mensajes" Vista y se puede localizar el artículo específico mediante la búsqueda de "Acceso A MOSS de servicios Web mediante la autenticación de formularios basado".

Aquí está el código que trabajó para nosotros:

ReportingService2006 rs = NULL; 
// Autenticar Autenticación auth = Nuevo Autenticación(); 
autenticaciónURL = "http://URL/_vti_bin/Authentication.asmx";
autenticaciónCookieContainer =
Nuevo CookieContainer();
Resultado de LoginResult = autenticaciónInicio de sesión("ID de usuario", "contraseña");
Si (resultado.ErrorCode == LoginErrorCode.NoError) 
{
// Ningún error, así que las cookies.
CookieCollection cookies = autenticaciónCookieContainer.GetCookies(Nuevo URI(autenticaciónURL));
Cookie authCookie = cookies[resultado.Nombre_cookie];
RS =
Nuevo ReportingService2006();
RS.URL =
"http://Server/_vti_bin/ReportServer/ReportService2006.asmx";
RS.CookieContainer =
Nuevo CookieContainer();
RS.CookieContainer.Add(authCookie);
}
Intente
{
  RS.CreateSubscription(informe, extSettings, desc, eventType, matchData, parameters1);
}
capturas (Exception ex)
{
  Console.WriteLine(ex.Message.ToString());
}

Puedo interpretar las cosas como esta:

  • Nuestra parte web necesita el servicio de autenticación de acceso telefónico y decir, "Hey, Tony, soy yo!".
  • Servicio de autenticación responde diciendo:, "Hey, Yo te conozco. Cómo son los niños? Aquí es un símbolo."
  • Que llame al servicio SSRS y decimos, "Tony me ha enviado, aquí está el símbolo (token)."

</final>

Suscribirse a mi blog.

Etiquetas de Technorati: , ,

Han realizado su análisis mensual de búsqueda?

Es una buena práctica, probablemente incluso una mejor práctica, para revisar los informes de búsqueda una vez al mes y buscar oportunidades agregar más probables, sintonice su tesauro y tal vez incluso descubrir cierta inteligencia de negocios que de lo contrario se oculta a la gestión.

Ya es la 3ª del mes. Awastin de tiempo’ 🙂

</final>

Suscribirse a mi blog.

Etiquetas de Technorati:

Faceteada búsqueda valla Sitter No más

Tenía razón hoy para jugar la búsqueda con facetas de CodePlex proyecto hoy.

Ha existido un rato, pero dudé para descargar y utilizar para las razones habituales (principalmente la falta de tiempo), plus outright fear 🙂

Si estás buscando mejorar la búsqueda y explorar nuevas opciones, descargarlo e instalarlo cuando tenga una hora o tiempo libre. He seguido las instrucciones del manual de instalación y me tomó menos de 20 minutos para tenerlo instalado y funcionando. Ofrece minuto de valor cero.

Parece bastante difícil de extender. Los autores proporcionan un detallado recorrido por un complejo escenario de BDC. Que pueda ser falta, pero ojalá también le proporcionan un escenario más sencillo que una de las propiedades existentes o tal vez agregar una nueva propiedad administrada. Pruebo y yo escribir en el próximo período de tiempo.

Línea inferior — en minutos, puede instalar, configurarlo, use it and add some pretty cool functionality to your vanilla MOSS search and be a hero 🙂

</final>

Suscribirse a mi blog.

Etiquetas de Technorati: