sharepoint - 以编程方式确定身份验证模式

标签 sharepoint

有没有办法以编程方式确定 SharePoint 2007 Web 应用程序是否正在使用表单例份验证?我想一种方法可能是从 web.config 中读取它,但我想知道 API 中是否公开了一些属性。

最佳答案

看看/_admin/Authentication.aspx 在 Central Admin 中是如何做到的:

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    string g = base.Request.QueryString["WebAppId"];
    this.webApp = (SPWebApplication) SPConfigurationDatabase.Local.GetObject(new Guid(g));
    this.zone = (SPUrlZone) Enum.Parse(typeof(SPUrlZone), base.Request.QueryString["Zone"]);
    this.lb_Zone.Text = SPHttpUtility.HtmlEncode(SPAlternateUrl.GetZoneName(this.zone));
    SPIisSettings iisSettings = this.webApp.IisSettings[this.zone];

    // CODE ELIDED

        if (AuthenticationMode.Windows != iisSettings.AuthenticationMode)
        {
            if (AuthenticationMode.Forms != iisSettings.AuthenticationMode)
            {
                // CODE ELIDED
            }
            else
            {
                this.rdo_authForms.Checked = true;
            }

            // CODE ELIDED
       }
}

您感兴趣的部分是它使用 iisSettings.AuthenticationMode 来确定它是否是 Forms Auth。因此,诀窍是正确获取与您的 webapp 和区域相关的 SPIisSettings 引用。达到这一点是所有工作都需要完成的地方。

您需要将此代码的部分参数化,以便传入用于识别和获取对 webApp 和区域的引用的信息。

看到它分配 his.rdo_authForms.Checked 的位置了吗?这就是你如何知道它是否使用表单例份验证。

另外,这意味着您需要知道您正在查看的 Web 应用程序的哪个区域,以查看是否启用了表单例份验证

关于sharepoint - 以编程方式确定身份验证模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1794156/

相关文章:

sharepoint - 从列表框中删除空白项

sharepoint - 如何将 Word 文档作为 HTML 发布到 Sharepoint

php - 如何使用 SharePoint Online 对 PHP 应用程序进行身份验证?

c# - SharePoint Online CSOM 网站列默认值

sharepoint - 用于替换 Sharepoint 2010 中的 MultiLookup 的自定义字段类型。从哪里继承?

javascript - $.Deferred() 和 SharePoint 2013 JavaScript CSOM

sharepoint - 如何在 Sharepoint 2010 中使用 CustomAction 添加功能区项目?

sharepoint - 确定 SharePoint 2013 列表中列的字段 ID

javascript - 如何通过单击列表中的超链接来获取 Sharepoint 列表行 ID?

sharepoint - 从 Team Foundation Build 调用的 Powershell 脚本远程执行