Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SharePoint 2010-在声明web应用程序上进行单点登录而不使用密码,如SetAuthCookie()_Sharepoint_Sharepoint 2010_Forms Authentication_Claims Based Identity - Fatal编程技术网

SharePoint 2010-在声明web应用程序上进行单点登录而不使用密码,如SetAuthCookie()

SharePoint 2010-在声明web应用程序上进行单点登录而不使用密码,如SetAuthCookie(),sharepoint,sharepoint-2010,forms-authentication,claims-based-identity,Sharepoint,Sharepoint 2010,Forms Authentication,Claims Based Identity,我正在处理这样一个场景:用户单击SAP站点中的链接,将他/她带到SharePoint站点。为了完成单点登录,http模块接受SAP cookie,获取用户名并将用户登录到SharePoint 当在SP 2007上实现时,它曾经是有效的:只需调用SetAuthCookie(用户名)就可以了,用户可以访问SharePoint 2007站点,一切都按预期进行 在SharePoint 2010声称的web应用程序上,它停止工作。这几乎是意料之中的事,佩尔。所以我开始替换SetAuthCookie()代码

我正在处理这样一个场景:用户单击SAP站点中的链接,将他/她带到SharePoint站点。为了完成单点登录,http模块接受SAP cookie,获取用户名并将用户登录到SharePoint

当在SP 2007上实现时,它曾经是有效的:只需调用SetAuthCookie(用户名)就可以了,用户可以访问SharePoint 2007站点,一切都按预期进行

在SharePoint 2010声称的web应用程序上,它停止工作。这几乎是意料之中的事,佩尔。所以我开始替换SetAuthCookie()代码,但我面临两个问题

这是我的自定义登录代码。是否存在不需要密码的SetAuthCookie()等价物?(无需硬编码url和pwd…只是一个原型)


多谢

终于能够回答我自己的问题了(讨厌回答我自己,但有时候就是这样…),这些都是细节。希望它能帮助某人,某处

private SPIisSettings IisSettings
{
    get
    {
        SPWebApplication webApp = SPWebApplication.Lookup(new Uri("http://virtualcasa1/sites/blank2"));//XXX
        SPIisSettings settings = webApp.IisSettings[SPUrlZone.Default];
        return settings;
    }
}

private SecurityToken GetSecurityToken()
{
    SecurityToken token = null;
    SPIisSettings iisSettings = IisSettings;
    Uri appliesTo = new Uri("http://virtualcasa1");//XXX

    SPFormsAuthenticationProvider authProvider = iisSettings.FormsClaimsAuthenticationProvider;
    token = SPSecurityContext.SecurityTokenForFormsAuthentication(appliesTo, authProvider.MembershipProvider, authProvider.RoleProvider, "userfba", "pa55word");//XXX
    return token;
}

private void SignIn()
{
    SecurityToken token = null;

    if ((token = GetSecurityToken()) != null)
    {
        SPFederationAuthenticationModule fam = SPFederationAuthenticationModule.Current;
        HttpContext c = HttpContext.Current;
        fam.SetPrincipalAndWriteSessionToken(token);
        c.Response.Redirect("/sites/blank2");//XXX
    }
}

void OnAuthenticateRequest(object sender, EventArgs e)
{
    HttpContext c = HttpContext.Current;
    if (c.Request.Url.ToString().ToLowerInvariant().Contains("/authenticate.aspx"))
    {
        SignIn();
    }