【发布时间】: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