1

我已经使用 C# 在 Visual Studio 2010 中创建了一个 Web 应用程序。

我有两个网页,Web 应用程序托管在已加入域的计算机上WATSON

第一个网页基本上是登录页面。最终用户将输入他们的用户名和密码并选择他们的域并单击提交。

现在,问题是虽然我使用以下代码对用户进行身份验证,但我不知道我应该如何将身份验证结果存储为。

using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, txtboxDomain.Text))
{
    // validate the credentials
    bool isValid = pc.ValidateCredentials(txtboxUser.Text, txtboxPass.Text);
}

我曾考虑将经过身份验证的结果存储为 cookie,但我冒着最终用户可能会禁用 cookie 设置或最终用户尝试对 cookie 进行有趣操作的风险。

此外,我无法将登录页面放在我的 Web 应用程序拥有的每个网页上。

另外,假设我将已成功通过身份验证的最终用户重定向到另一个 aspx 页面,最终用户可能只是为该 aspx 页面添加书签。因此,下一次,最终用户将直接进入 aspx 页面而不进入登录页面。然后最终用户将不需要登录,这是我不希望发生的。

那么,我应该如何着手使只有那些正确和合法的用户才能访问另一个 aspx 页面?

4

1 回答 1

0

看看我的答案之一如何在应用程序级别设置 Windows 身份验证:

WindowsIdentity 和经典 .Net 应用程序池

这是另一个链接,您可以如何限制用户对特定页面的访问,它可能会让您得心应手:

如何限制未登录/未经授权的用户在 ASP.NET 中查看网页

于 2012-10-05T06:06:57.527 回答