Asp.net mvc 4 Sharepoint Online/Excel Services/委托身份验证

Asp.net mvc 4 Sharepoint Online/Excel Services/委托身份验证,asp.net-mvc-4,oauth-2.0,azure-active-directory,csom,sharepoint-online,Asp.net Mvc 4,Oauth 2.0,Azure Active Directory,Csom,Sharepoint Online,我们有一个asp.net MVC应用程序,用户通过azure active directory进行连接。他们可以通过sharepoint online帐户管理文件 要访问sharepoint online,我们使用。我们希望连接到azure active directory的用户使用其帐户在不填写凭据的情况下操作文件。为此,我们将访问令牌附加到要验证的请求头。它很好用 现在,我们希望在sharepoint online中使用excel services SOAP API。要进行身份验证,我们必须

我们有一个asp.net MVC应用程序,用户通过azure active directory进行连接。他们可以通过sharepoint online帐户管理文件

要访问sharepoint online,我们使用。我们希望连接到azure active directory的用户使用其帐户在不填写凭据的情况下操作文件。为此,我们将访问令牌附加到要验证的请求头。它很好用

现在,我们希望在sharepoint online中使用excel services SOAP API。要进行身份验证,我们必须填写凭证。我们如何绕过它并通过用户登录进行身份验证

编辑: 您可以在下面看到使用当前用户上下文访问sharepoint资源的代码

using (ClientContext context = new ClientContext("https://myServer.sharepoint.com"))
{
      context.ExecutingWebRequest += ExecutingWebRequest;

       context.Load(context.Web.Lists);
       context.ExecuteQuery();

       // Do some stuff with lists ...
 }

private void ExecutingWebRequest(object sender, WebRequestEventArgs e)
{
   e.WebRequestExecutor.WebRequest.Headers.Add("Authorization", "Bearer " + accessToken);
}

我需要执行类似操作才能使用当前用户上下文访问excel services Web服务。

虽然大多数应用程序需要身份验证才能访问私人信息或执行任务,但并非所有身份验证方法都能提供足够的安全性。疏忽、无知或对安全威胁的简单轻描淡写通常会导致通过跳过登录页面并直接调用内部页面(该页面应仅在执行身份验证后才能访问)绕过身份验证方案

using (ClientContext context = new ClientContext("https://myServer.sharepoint.com"))
{
      context.ExecutingWebRequest += ExecutingWebRequest;

       context.Load(context.Web.Lists);
       context.ExecuteQuery();

       // Do some stuff with lists ...
 }

private void ExecutingWebRequest(object sender, WebRequestEventArgs e)
{
   e.WebRequestExecutor.WebRequest.Headers.Add("Authorization", "Bearer " + accessToken);
}
此外,通过篡改请求并诱使应用程序认为用户已经通过身份验证,通常可以绕过身份验证措施。这可以通过修改给定的URL参数、操纵表单或伪造会话来实现

在软件开发生命周期(SDLC)的不同阶段,如设计、开发和部署阶段,可以发现与身份验证模式相关的问题:

在设计阶段,错误可能包括对要保护的应用程序部分的错误定义,选择不应用强加密协议来保护凭据的传输,等等。 在开发阶段,错误可能包括输入验证功能的不正确实现或不遵循特定语言的安全最佳实践。 在应用程序部署阶段,由于缺乏所需的技术技能或缺乏良好的文档,应用程序设置(安装和配置活动)期间可能会出现问题

if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ||
{
$sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ?
unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();
$sessionmethod = SESSION_METHOD_COOKIE;
}
if( md5($password) == $row['user_password'] && $row['user_active'] )
{
$autologin = ( isset($HTTP_POST_VARS['autologin']) ) ? TRUE : 0;
}

谢谢你的回答,但你并没有真正回答我的问题。我需要使用通过Azure Active Directory登录的用户的当前上下文访问excel services webservices(托管在sharepoint中)。