经过N天的时间终于把sso搞定了,现在抽出一些时间总结一下.希望对你有所帮助.
第一部分:在管理中心进行配置
1.打开 管理中心à操作
![](https://i-blog.csdnimg.cn/blog_migrate/83019b7540ae9e1d5a061a2e0992fe2f.gif)
2.单击 管理单一登陆的设置 后进入设置页面,如下图
![](https://i-blog.csdnimg.cn/blog_migrate/352b84dde9713206c73979fd19eb996b.gif)
3. 单击”管理服务器设置
![](https://i-blog.csdnimg.cn/blog_migrate/a1d22da22b21f2dd5a23c7d541e7fe86.gif)
1. 单一登录管理员帐户:
此为启用SSO服务的账号. 这个账户须是单一登录服务账户所属网域中的成员:BOCOITS/Administrator
2.企业应用程序定义管理员帐户:
设定EAP(企业应用程序定义)的帐户.这个账户须是单一登录服务账户所属网域中的成员:BOCOITS/Administrator
3. 数据库设定
3.1[服务器名称]储存单一登录的设定和帐户信息的数据库服务器名称:bocoits-moss
3.2.[数据库名称]键入单一登录数据库的名称:SSO数据库的名称:SSO
4. 逾时设定
4.1[票证超时]票证超时允许等待的分钟数。预设是2分钟。
4.2.[删除早于该时间的审核日志记录] 要保留审核记录中几天内的记录。 默认值为10天。
点击 确定 后,完成单一登录的服务器设定,且会于指定的SQL SERVER上建立SSO数据库.如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/48605bf66b270d1b1621c93a756e6806.gif)
4 管理加密密钥设置
打开 管理中心 > 操作 > 管理单一登录 > 管理加密密钥
![](https://i-blog.csdnimg.cn/blog_migrate/a5cd480e8e51ffb313665df35ede565e.gif)
点击 创建加密密钥
![](https://i-blog.csdnimg.cn/blog_migrate/d4972f70c938ab7499e49bf261f7ae61.gif)
点击 确定后,密钥已经创建成功.
5 管理企业应用程序定义的设置
单击 新建项目
![](https://i-blog.csdnimg.cn/blog_migrate/6d2ea8e857815c0d453e377613ed1858.gif)
6 管理企业应用程序定义的帐户信息
![](https://i-blog.csdnimg.cn/blog_migrate/a4d528379fefae759f6121f2cbb77e40.gif)
单击 设置
![](https://i-blog.csdnimg.cn/blog_migrate/0389cf2105aacee34fe63c767774bb42.gif)
在用户名及密码处输入gmail邮箱的用户名及密码,后单击 确定.
OK,到此第一部分就结束.
第二部分:编写代码.
首先新建一个空的asp.net web Application ,然后添加新项SsoToGMail.aspx,在Page_Load页面添加如下代码:
首先导入using Microsoft.SharePoint.Portal;using Microsoft.SharePoint.Portal.SingleSignon;这两个dll,然后添加引用,默认在以下地址:C:/Program Files/Common Files/Microsoft Shared/web server extensions/12/ISAPI/.
IntPtr pUserName
=
IntPtr.Zero;
IntPtr pPassword
=
IntPtr.Zero;
ISsoProvider isso
=
SsoProviderFactory.GetSsoProvider();
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
SsoCredentials myCreds
=
isso.GetCredentials(
"
GoogleMail
"
);
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);
string
strHTML
=
""
;
strHTML
+=
"
<html>
"
;
strHTML
+=
"
<body >
"
;
strHTML
+=
"
<form id='myform' name='myform' method='POST'action='https://www.google.com/accounts/ServiceLoginAuth' >
"
;
strHTML
+=
"
<input type='hidden' name='continue' value='http://mail.google.com/mail?ui=html&zy=l'>
"
;
strHTML
+=
"
<input type='hidden' name='service' value='mail'>
"
;
strHTML
+=
"
<input type='hidden' id='Email' name='Email' value='
"
+
userName
+
"
' >
"
;
strHTML
+=
"
<input type='hidden' id='Passwd' name='Passwd' value='
"
+
Password
+
"
' >
"
;
strHTML
+=
"
</form>
"
;
strHTML
+=
"
<script >
"
;
strHTML
+=
"
window.οnlοad=myform.submit();
"
;
strHTML
+=
"
document.all('Email').value='';document.all('Passwd').value='';
"
;
strHTML
+=
"
</script>
"
;
strHTML
+=
"
</body>
"
;
strHTML
+=
"
</html>
"
;
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
Response.Write(strHTML);
第三部分:把此应用程序放到sharepoint网站上.
在我的站点新建一个虚拟目录,SSODemo,把上面的应用程序增长拷贝到此目录中.
![](https://i-blog.csdnimg.cn/blog_migrate/0089deab5261d3ffe7a4c2944136ac01.gif)
打开Sharepoint网站,点击 网站操作-->网站设置-->顶部链接栏
点击 新建链接 在 请键入网址 中输入: http://bocoits-moss:60000/SSODemo/SSOToGMail.aspx
在 键入说明 中输入:转接GMail,点击 确定.
OK,到此为止,大功告成了.效果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/ba994dc229c8e5c924286d32ad556528.gif)
点击 转接GMail 后的将链接到gmail邮箱,如下图.
![](https://i-blog.csdnimg.cn/blog_migrate/2296e9ba6052b39f782a9ff735c0b06f.gif)