2011-11-23 50 views
2

我想公開一個webmethod,它將接受用戶名和密碼並登錄用戶。我將如何以編程方式採用這些參數並將用戶登錄到該站點,以便在web方法完成後,頁面重新加載並且用戶現在「登錄」。我想避免使用Login asp控件,因爲我想通過ajax調用將這些參數發送到webmethod並讓它以這種方式登錄用戶。如何以編程方式登錄共享點

+0

將您的Web服務託管在SharePoint的上下文中? –

+0

是的,它將被託管在sharepoint的上下文中 – anthonypliu

+1

你的方法與['Authentication.Login'](http://msdn.microsoft.com/en-us/library/authentication.authentication.login.aspx)有什麼不同? –

回答

-1

我用Windows窗體應用這種方法,它工作得很好:

注意spUsername和spPassword是你有這個代碼提供者:

private bool loginSharePoint() 
    { 
     lbLoginStatus.Text = "Logging in Sharepoint server"; 

     bool isValid = false; 

     //validating Sharepoint login 
     string spUsername = tbSharePointUsername.Text; 

     string spPassword = tbSharePointPassword.Text; 


     pc = new PrincipalContext(ContextType.Domain, spUsername.Split('\\')[0]); 

     pbLogin.PerformStep(); 
     // validate the credentials 
     isValid = pc.ValidateCredentials(spUsername.Split('\\')[1], spPassword); 
     if (isValid) 
     { 
      pbLogin.PerformStep(); 

      pbLogin.PerformStep(); 
      site = new SPSite(tbSharePointUrl.Text); 

      pbLogin.PerformStep(); 
      web = site.OpenWeb(); 

      pbLogin.PerformStep(); 
      if (web.DoesUserHavePermissions(spUsername, SPBasePermissions.Open)) 
       isValid = true; 
      else 
       isValid = false; 
     } 


     return isValid; 
    } 
+0

如果你能描述一些你的代碼會更好。 – Cornelius