【问题标题】:How does the authentication apply to all aspx pages for a Web Application using C# in Visual Studio 2010?身份验证如何应用于在 Visual Studio 2010 中使用 C# 的 Web 应用程序的所有 aspx 页面?
【发布时间】:2012-09-26 06:11:12
【问题描述】:

我在 Visual Studio 2010 中使用 C# 创建了一个 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 页面?

【问题讨论】:

  • 如果您的应用程序配置为不再需要登录页面的 Windows 身份验证,您会接受吗?
  • @GregorPrimar,实际上 Web 应用程序在 IIS 中启用了 Windows 身份验证选项。然而,问题是最终用户可能正在从他们的家用计算机登录到 Web 应用程序。因此,我想知道会发生什么,因此我问了这样的问题。
  • 如果您在 Visual Studio 2010 中创建一个新的“Web 应用程序”项目,它包含大量代码来创建表单身份验证的默认实例。我会从那里开始。
  • @TiesonT.,请问您是否指的是此页面 - msdn.microsoft.com/en-us/library/xdt4thhy(v=vs.100).aspx
  • 通过网络传递域凭据不是一个好主意。对于需要在家工作的用户,我会使用类似 vpn 的连接。建立 vpn 连接后,用户将使用特定的域凭据加入网络。

标签: c# asp.net visual-studio-2010 web-applications


【解决方案1】:

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

WindowsIdentity and Classic .Net App Pool

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

How to restrict unlogged/unauthorized users from viewing web pages in ASP.NET

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-15
    • 2022-01-24
    • 2013-07-24
    • 2018-08-11
    • 2012-09-09
    • 2015-02-05
    • 2012-10-31
    • 2020-05-04
    相关资源
    最近更新 更多