Windows身份验证 - 阻止弹出窗口?

时间:2012-11-30 01:30:03

标签: asp.net windows forms authentication iis

我正在尝试在sharepoint中实现一个Web视图Web部件,它将加载我在本地IIS上托管的小型“widget”类型的东西。我希望仅向特定用户显示此Web部件,但不能使用Sharepoint的“目标受众”功能,因为我们仅使用Foundation,该功能不存在。

我目前正在尝试在页面上使用Windows身份验证,它对于允许的用户无缝地工作正常 - 但是,我希望有一种方法,如果用户被拒绝,他们没有得到弹出窗口要求凭证,它只会将它们重定向到空白页面,因此Web部件“不会显示”给他们。

这可能是使用Windows身份验证还是我需要对Active Directory使用表单身份验证并让他们使用表单登录?可以将表单身份验证配置为无缝使用AD组,并仅在“拒绝”时显示登录页面吗?

干杯

1 个答案:

答案 0 :(得分:0)

在尝试了大约一百万种不同的解决方案后,所有这些解决方案基本上都回到了...... 在发送401错误之前检查用户是否经过身份验证是一件很痛苦的事情 - 因为有一个初始401被发送到浏览器,然后提示它进行身份验证。

我提出了一个快速而肮脏的解决方案,因为该项目很小,不值得投入更多。

我在page_load事件中进行了非常简单的检查,如果它不是回发(第一次加载),则检查用户名,如果找不到静态用户列表,则重定向。远离完美,但它会做的。

if (!Page.IsPostBack)
        {
            var user = Request.LogonUserIdentity.Name.ToLower().ToString();
            if (user != "domain\\user")
            {
                Response.Redirect("/path/to/redirect/to.html");

            }
        }