MVC Web App Windows身份验证(Intranet)和凭据(Internet)

时间:2014-10-08 08:05:45

标签: c# asp.net-mvc forms-authentication windows-authentication

我们的客户要求我们通过Intranet和Internet访问我们的Web应用程序。 当用户尝试从Intranet访问网站时,用户应立即登录(Windows Auth)...用户也应该有公共访问权限(例如Home,Coffee shop),但在这种情况下,他应该使用他的凭据和服务器将检查它是否有效。

有任何建议吗?

2 个答案:

答案 0 :(得分:1)

这是集成Windows身份验证的标准方式。如果您在Intranet内部(登录到域),当网站返回401.2(未指定auth方法)时,IE将自动发送您的凭据。如果您不在域内,则必须提示凭据,因为无法从客户端计算机联系域服务器。

这与"棘手的"不同。你提到的解决方案。这个解决方案很棘手,因为它还使用了表单身份验证,这是您不需要的(AFAIK)。

答案 1 :(得分:0)

我们决定不使用Windows Auth。 如果客户在Intranet中,则客户希望保持登录状态。 所以我们做了以下事情(顾客对此没问题)

  1. 表格身份验证+'让我登录'复选框
  2. 使用AD验证凭据。
  3. 检查可信IP地址范围内的用户(SQL Azure中允许的IP地址)
  4. 如果是受信任的IP范围,则用户将通过身份验证。
  5. 如果不是,则通过发送短信双重身份验证。
  6. 不使用Windows Auth的另一个原因。 用户希望随时注销以使用不同的凭据来执行某些特殊任务。

    通常客户不知道他们到底想要什么,所以我们将开始做梦,让事情变得复杂。 '只需让我登录'对于可信任的IP地址,他将保持登录N天。