0

技术 ASP.NET、VB.NET 2.0(即将为 4.0)

概述 我正在编写一个登录/身份验证门户,以便 Web 应用程序可以使用它来登录用户,然后他们可以使用他们的凭据使用该应用程序。

登录门户将是一个单独的应用程序,最初只能通过外部网以及某些应用程序的内部网访问;但未来的应用程序将需要通过网络进行身份验证(很高兴作为一个单独的实例来实现)。我基本上希望其他单个应用程序能够通过此门户对用户进行身份验证。

以便...

  1. 用户访问应用程序的 Web url(即 www.application.com / http://apps/application - Intranet)并单击“登录”。
  2. 用户的浏览器被重定向到门户应用程序,查询字符串为 www.loginportal.com/login.aspx?url=www.application.com/login.aspx(或其他页面)。
  3. 用户填写他们的凭据(用户名、密码),然后单击“登录”按钮。
  4. 浏览器重定向回 url 即 www.applications.com/default.aspx 或 login.aspx 并通过身份验证并登录;并且可以使用应用程序。

完成 我对身份验证本身进行了排序,并将通过 dll 在本地应用程序中作为类库实现。

需要 所以我基本上需要知道如何:- 1. 将数据发布到门户网址(可能是不同的域)。2.用帖子重定向浏览器。3. 确保身份验证是安全的,并且不容易被破解(我知道如何使用 urlencode 和 htmlencode 等)——只是不确定跨域发布数据的含义。

非常感谢任何帮助...

干杯,邓肯。

4

2 回答 2

0

好的,这就是我最终使用的解决方案:

在原始应用程序(需要身份验证的应用程序;上面的第 1 步)中,我将用户重定向到我的登录门户,并将原始 url 作为 get 参数包含在内。然后用户输入他们的详细信息、用户名和密码。

接下来,服务器端代码对它们进行身份验证,并重定向到一个新页面,在那里我向该页面发送回一个 html 表单,其中包括请求日期时间(出于安全考虑)以及加密字符串(包括请求的日期时间)我想要发送回原始表单的数据。

我还添加了一个 JavaScript post 方法,它将数据作为表单帖子发送到原始 url。因为我在两端使用相同的类库,所以我可以使用相同的方法对数据进行加密和解密,并且原始请求应用程序拥有所有用户数据,包括检查请求的日期时间的能力(我允许一组身份验证和原始应用程序提取之间的时间量,确保这些时间在 5 分钟内。

并完成了工作。

如果有人想要代码,我可以提供,只是暂时不要带它,如果我记得我会发布它。

不是最优雅的解决方案,但它有效,而且很安全,所以我很高兴。:)。

于 2011-04-30T19:08:06.637 回答
0

非常艰难的东西,在这里。如果是我,我会严重依赖Windows Identity Foundation。我相信它可以支持这种情况(实际上还没有这样做;我公司的其他人正在针对它进行开发)。

于 2011-04-06T21:19:05.190 回答