Cómo habilitar la autenticación en un servicio RIAAquí está el código que debe agregar al proyecto del servidor y al proyecto del cliente para garantizar que la autenticación se convierta en un servicio para la aplicación del cliente. Puede restringir el acceso a las operaciones del dominio solo a usuarios autenticados aplicando el atributo RequiresAuthenticationAttribute a las operaciones del dominio. La autenticación en los servicios WCF RIA se basa en el marco de autenticación de ASP.NET. Para obtener más información sobre la autenticación ASP.NET, consulte Introducción a la membresía. Configurar el proyecto del servidor En el proyecto del servidor, abra el archivo Web.config. En Elementos, agregue un elemento. Establezca la propiedad de modo en el modo de autenticación que desea utilizar en su proyecto. El siguiente código muestra un elemento cuyo modo está establecido en un formulario. Establezca el atributo de modo en Windows para utilizar la autenticación de Windows. Su archivo Web.config contendrá más elementos. Guarde el archivo Web.config. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto del servidor, seleccione Agregar y luego seleccione Nuevo elemento. Aparece el cuadro de diálogo Agregar nuevo elemento. Seleccione la plantilla Servicio de dominio de autenticación y asigne un nombre al servicio. Haga clic en Agregar. Para restringir el acceso a una operación de dominio solo a usuarios autenticados, aplique el atributo RequiresAuthenticationAttribute a la operación de dominio. El siguiente ejemplo especifica que solo los usuarios autenticados pueden acceder al método GetSalesOrderHeaders: VB _ PublicFunction GetSalesOrderHeaders() As IQueryable(Of SalesOrderHeader) ReturnMe.ObjectContext.SalesOrderHeaders EndFunctionCS [RequiresAuthentication()] public IQueryable GetSalesOrderHeaders() { return this.ObjectContext. SalesOrderHeaders; } Generar solución. Configuración del servicio de autenticación en el proyecto del cliente En el proyecto del cliente, abra el archivo de código subyacente (App.xaml.cs o App.xaml.vb) del archivo App.xaml. En el constructor, cree una instancia de la clase WebContext. Establezca la propiedad Autenticación en el tipo de autenticación configurado en el proyecto del servidor y agregue la instancia de WebContext a ApplicationLifetimeObjects: VBPublicSubNew() InitializeComponent() Dim webcontext AsNew WebContext webcontext.Authentication = New System.ServiceModel.DomainServices.Client.ApplicationServices.Authentication.
Me.ApplicationLifetimeObjects.Add(webcontext) EndSubCS public App() { this.Startup = this.Application_Startup; this.Webcontext.Authentication = New System.ServiceModel.DomainServices.ApplicationServices.FormsAuthentication. Este .ApplicationLifetimeObjects.Add(webcontext } Si usa la autenticación de Windows, debe usar un WebContext en su aplicación. Si está utilizando la autenticación de Windows o desea cargar al usuario con credenciales persistentes, llame al método LoadUser antes de mostrarle las opciones de inicio de sesión al usuario. El siguiente ejemplo muestra cómo llamar al método LoadUser desde el método Application_Startup: VBPrivateSub Application_Startup(ByVal o AsObject, ByVal y As StartupEventArgs) HandlesMe.WebContext.Current.Authentication.LoadUser(AddressOf OnLoadUser_Completed, Nothing) Me.RootVisual = New MainPage() EndSubPrivateSub OnLoadUser_Completed(operación ByVal como LoadUserOperation) ' Actualizar UI (si es necesario) EndSubCS private void Application_Startup (remitente del objeto, StartupEventArgs e) { WebContext.Current.Authentication.LoadUser(AddressOf OnLoadUser_Completed, Nothing) Me.RootVisual = New MainPage()current. Autenticación .LoadUser(OnLoadUser_Completed, null); this.RootVisual = new MainPage (); } private void OnLoadUser_Completed(Operación LoadUserOperation) { // Actualizar la interfaz de usuario (si es necesario) }. credenciales de usuario al hacerlo. En el archivo de código subyacente de la página de inicio de sesión, llame al método de inicio de sesión para iniciar sesión como usuario. El siguiente ejemplo muestra cómo llamar al método Login desde el controlador de eventos del botón Login. Contiene un método de devolución de llamada para responder a los resultados de la operación de inicio de sesión.