LoginForms.Login Method

Log on the specified user with Project Server authentication.

Namespace:  WebSvcLoginForms
Assembly:  ProjectServerWebServices (in ProjectServerWebServices.dll)

Syntax

'Declaration
<SoapDocumentMethodAttribute("http://schemas.microsoft.com/office/project/server/webservices/LoginForms/Login", RequestNamespace := "http://schemas.microsoft.com/office/project/server/webservices/LoginForms/",  _
    ResponseNamespace := "http://schemas.microsoft.com/office/project/server/webservices/LoginForms/",  _
    Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Function Login ( _
    username As String, _
    password As String _
) As Boolean
'Usage
Dim instance As LoginForms
Dim username As String
Dim password As String
Dim returnValue As Boolean

returnValue = instance.Login(username, _
    password)
[SoapDocumentMethodAttribute("http://schemas.microsoft.com/office/project/server/webservices/LoginForms/Login", RequestNamespace = "http://schemas.microsoft.com/office/project/server/webservices/LoginForms/", 
    ResponseNamespace = "http://schemas.microsoft.com/office/project/server/webservices/LoginForms/", 
    Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public bool Login(
    string username,
    string password
)

Parameters

  • password
    Type: System.String
    Password for the Project Server user.

Return Value

Type: System.Boolean
Returns true for a successful logon to Project Server.

Remarks

After a successful logon, set the CookieContainer property to the user's Project Server credentials for other PSI Web service objects in the same application. For more information, see How to: Log on to Project Server Programmatically.

Examples

The LogonPS method in the following example handles logon and the LogoffPS method handles logoff for both Project Server authentication and Windows authentication.

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;

namespace LoginDemo
{
    class LoginUtils
    {
        const string LOGINWINDOWS = "_vti_bin/PSI/LoginWindows.asmx";
        const string LOGINFORMS = "_vti_bin/PSI/LoginForms.asmx";

        private static LoginWindowsWebSvc.LoginWindows loginWindows =
            new LoginWindowsWebSvc.LoginWindows();
        private static LoginFormsWebSvc.LoginForms loginForms =
            new LoginFormsWebSvc.LoginForms();
        private CookieContainer cookies = new CookieContainer();

        private string baseUrl; // Example: http://ServerName/ProjectServer/

        public LoginUtils()
        {
        }

        public string BaseUrl
        {
            get
            {
                return baseUrl;
            }
        }

        public CookieContainer Cookies
        {
            get
            {
                return loginForms.CookieContainer;
            }
        }

        // Log on Project Server.
        // Returns true for successful logon.
        public bool LogonPS(bool useWinLogon, string bUrl,
            string userName, string password)
        {
            bool logonSucceeded = false;
            baseUrl = bUrl;

            if (useWinLogon)
            {
                loginWindows.Url = baseUrl + LOGINWINDOWS;
                loginWindows.Credentials = CredentialCache.DefaultCredentials;

                if (loginWindows.Login()) logonSucceeded = true;
            }
            else  // Use LoginForms
            {
                loginForms.Url = baseUrl + LOGINFORMS;
                loginForms.CookieContainer = cookies;

                if (loginForms.Login(userName, password)) logonSucceeded = true;
            }
            return logonSucceeded;
        }

        // Log off Project Server.
        // Returns true for successful logoff.
        public bool LogoffPS(bool useWinLogon)
        {
            bool loggedOff = true;
            if (useWinLogon)
            {
                loginWindows.Logoff();
            }
            else
            {
                loginForms.Logoff();
            }
            return loggedOff;
        }
    }
}

The following code instantiates and uses the LoginUtils class for Windows authentication. The project object is an example that shows how to add the user context for a PSI Web service.

private bool windowsAuth = false;  // Use Project Server authentication
private string baseUrl; // Example: http://ServerName/ProjectServerName/ 
private const string PROJECTWEBSERVICE = "_vti_bin/PSI/Project.asmx";

private static LoginUtils loginUtils = new LoginUtils();
public static ProjectWebSvc.Project project = 
    new ProjectWebSvc.Project();
. . .
// Add the URL, and the user credentials or logon cookie to each PSI Web service object.
public void AddContextInfo(string baseUrl)
{
    // Add the Url property first.
    project.Url = baseUrl + PROJECTWEBSERVICE;

    if (windowsAuth)   // Add Windows credentials
    {
        project.Credentials = CredentialCache.DefaultCredentials;
    }
    else            // Add Project Server logon cookie
    {
        project.CookieContainer = loginUtils.Cookies;
    }
}

See Also

Reference

LoginForms Class

LoginForms Members

WebSvcLoginForms Namespace