如何通过静默提供用户凭据来打开共享点页面

时间:2011-01-14 13:07:16

标签: c# java asp.net authentication sharepoint-2010

我想从我的应用程序(例如文档的“编辑属性”页面)打开本机SharePoint 2010页面,而无需输入用户名/密码,而是静默地进行身份验证(在页面请求之前或期间)。那可能吗?

换句话说,我有一个Windows窗体应用程序,我输入一个sharepoint文档路径,然后我点击一个按钮,这将打开一个带有浏览器控件的Windows窗体,该窗体将导航到本机“editform.aspx”sharepoint这个文档的2010页面。有没有办法验证用户,而无需他输入他的凭证?

谢谢,

2 个答案:

答案 0 :(得分:1)

首次访问SharePoint网站时无法传递凭据。但是,如果您使用允许保存的身份验证选项(尤其是NTML)并且用户的浏览器设置允许保存密码,则后续登录将是自动的。如果他们打开浏览器并直接导航到EditForm.aspx URL,这将是相同的体验。

在IE中,您可以在“高级选项”中设置“自动登录”设置。它会根据区域对URL进行不同的处理,因此如果您的页面位于用户的“Intranet区域”中,则会更简单。

如果您正确设置,他们第一次使用您的SharePoint网站时会提示他们,但每次之后他们都会自动登录。

答案 1 :(得分:0)

你可以尝试设置WebRequest的PreAuthenticate属性(我假设你使用它)。虽然我不得不承认已经看到类似的问题,结果好坏参半。 您获得的登录质询屏幕是NTLM固有的:

来自NTLM wiki page

  

“首先,客户端建立到服务器的网络路径,并发送NEGOTIATE_MESSAGE通告其功能。[11]接下来,服务器以CHALLENGE_MESSAGE响应,用于建立客户端的身份。[12]最后,客户通过AUTHENTICATE_MESSAGE“响应挑战。”

更多关于PreAuthenticate (MSDN)

  

“除第一个请求外,PreAuthenticate属性指示是否在不等待服务器质询的情况下发送带有后续请求的身份验证信息。当PreAuthenticate为false时,WebRequest会在发送身份验证信息之前等待身份验证质询。 “

通过做彼得建议(将网站添加到IE的Intranet区域意味着您的凭据将被缓存,webrequest使用这些缓存的请求并尊重IE中的设置。