在ASP.NET网站和SharePoint 2007之间共享凭据

时间:2011-01-04 15:36:21

标签: asp.net authentication sharepoint-2007 credentials

这是我的问题:

1)我有一个ASP.NET网站,它是应用程序的主要入口点 本网站使用Forms身份验证,验证数据库的凭据(用户名/密码)。

2)登录网站后,将向用户显示一个页面,其中包含指向Sharepoint 2007应用程序的多个链接,其中身份验证由Active Directory管理。

3)Active Directory中的每个用户都在管理ASP.NET网站身份验证的数据库中重复。

4)ASP.NET网站和SP 2007应用程序在同一个域中 NOT

我们面临的问题是用户首先必须输入他们的凭据才能访问ASP.NET网站。然后,单击指向SP 2007应用程序的链接,它们会被提示另一个类似.htaccess的窗口,以便针对Active Directory对它们进行身份验证。

问题是:
是否有可能传递用户首次输入的凭据以访问HTTP上下文中的ASP.NET网站,以便当他点击指向SP 2007的链接时,不会要求他输入他的证书又来了? 我已经成功验证了针对AD的凭据,但我仍然坚持在哪里扩展ASP.NET身份验证过程,以便将SP相关的域凭据注入上下文。

希望我很清楚,如果需要,请随时询问更多信息 为了清楚起见,绕过第一步(ASP.NET网站身份验证)是强制性的: - )

谢谢大家,
米克

1 个答案:

答案 0 :(得分:1)

sharepoint是否具有ntlm或基于表单的身份验证? (我猜ntlm是因为登录poup)

我使用sharepoint forms auth在其中构建了类似的东西:

  • 1.用户登录ASP.NET应用程序
  • 2.Auth cookie created
  • 3.Auth令牌存储在数据库中
  • 4.用户转到sharepoint
  • 5.Custom HttpModule检查cookie和令牌
  • 6.使用HttpApplication.AuthenticateRequest和FormsAuthenticationTicket将用户登录到sharepoint

我想你可以用ntlm auth做类似的事情,但是因为浏览器正在进行身份验证,所以可能无法实现。一大堆不同的标题被发送。 (例如WWW-Authenticate Authorization)。必须注意的是,开发自定义HttpModule并不是一项新手任务。

你说: 3)Active Directory中的每个用户都在管理ASP.NET网站身份验证的数据库中重复。 我希望密码不是该数据库中的明文

说: 而且要明确,绕过第一步(ASP.NET网站身份验证)是强制性的:-) 你的意思是“不是强制性的”吗?