Moss 2007 单点登录

基于SharePoint 2007做个单点登录,找了很多资料,SSO的配置、获取SSO中应用程序凭据,这些都有很多资料介绍,但是木有怎样将用户凭据存入SSO中,这个很关键,不可能所有用户凭据都由管理员来输入,今天主要是介绍一些怎样将用户凭据存入SSO。

  • SSO配置

进入SharePoint服务器,进入服务管理界面,设置“Microsoft Single Sign-on Service ”服务为自动模式,同时已启动。

                       

进入管理中心,点击左侧导航“操作”按钮。然后在页面右侧点击“管理单一登录的设置”,进入管理单一登录页面。

 

点击“管理服务器设置”,进入服务器设置页面。

首先输入“单一登录管理员账号”、“企业应用程序定义管理员账户”、“数据库设置”,然后点击确定按钮。

 

点击“管理加密密钥”,然后点击创建加密密钥。

 

进入管理企业应用程序页面,点击新建按钮。

 

首先输入“显示名称”,“应用程序名称”,“账户类型”的值,应用程序名称为Mail,账户类型为个人,点击保存。

 

进入管理企业应用程序的账户信息页面,可以修改用户在应用中的账号和密码。

 

  • SSO页面

添加引用

using Microsoft.SharePoint;

using Microsoft.SharePoint.Portal;

using Microsoft.SharePoint.Portal.SingleSignon;

  protected override void OnInit(EventArgs e)         {

            base.OnInit(e);

            SSOCanaryChecker.AddCanary(Page);

        }

获取用户凭证

 IntPtr pUserName = IntPtr.Zero;

            IntPtr pPassword = IntPtr.Zero;             String strHttpUrl = string.Empty;             try

            {

            ISsoProvider isso = SsoProviderFactory.GetSsoProvider();

            SsoCredentials myCreds = isso.GetCredentials("Mail");

            pUserName = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(myCreds.UserName);

            String userName = System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pUserName);

            pPassword = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(myCreds.Password);

            String Password = System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pPassword);

添加用户凭证

  Credentials x = new Credentials();

            string[] rgSetCredentialData = new string[2];

            string strUserName = txtUserName.Text;

            string strPassword = txtPassword.Text;

            rgSetCredentialData[0] = strUserName;

            rgSetCredentialData[1] = strPassword;

            Credentials.SetCredentials(Convert.ToUInt32(1), "Mail", rgSetCredentialData);

 参考链接:http://www.sharepointsecurity.com/sharepoint/sharepoint-security/implementing-pluggable-sharepoint-single-sign-on/

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.portal.singlesignon.credentials.setcredentials(v=office.12).aspx

原文地址:https://www.cnblogs.com/ficohu/p/2942055.html