Windows Web 表单按钮的身份验证

Windows Authentication for Web Form Button

我需要做的是允许或拒绝用户访问我的 asp 网络表单上的特定按钮控件。我想做的是基于他们的 Windows 凭据,这样就不需要使用登录页面了。公司中只有少数人应该有权访问此控件,因为它会清除保存库存结果并创建备份的 SQL table。

有没有办法在 Default.aspx 加载时进行身份验证,如果通过身份验证,使 DeleteButton.Visible = true?

与此同时,我正在查看 ASP windows 身份验证教程。大多数教程似乎都倾向于允许或拒绝访问一般的 Web 表单,但应该允许其他用户访问该表单(只是不允许删除按钮)。

可以尝试类似的东西:

DeleteButton.Visible = User.Identity.IsAuthenticated && 
                       User.IsInRole("AllowedToPressButton");

由于您没有登录逻辑(因为 Windows 已经完成身份验证),您需要处理哪些特定用户在 "AllowedToPressButton" 组中。

要使上面的示例工作,请尝试以下操作:

web.config

<system.web>
    <roleManager enabled="true" />
</system.web>

global.asax

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    If (Roles.RoleExists("AllowedToPressButton") = False) Then
        Roles.CreateRole("AllowedToPressButton")
        Roles.AddUserToRole("DOMAIN\User", "AllowedToPressButton")
    End If
End Sub

这是实现解决方案的一种非常简单的方法,它紧密地绑定了 user/role 分配。 ASP.NET 中的角色管理可以通过多种方式实现,例如 SQL 或 Windows(以及更多)。

这里有几篇关于使用自定义角色和 windows auth

的好文章