【发布时间】:2016-01-22 23:02:21
【问题描述】:
我有一个带有 Windows 身份验证和 Oracle 数据库的简单 MVC 网站。
我想为用户提供一种近乎“SSO”的感觉。 这意味着流程将是这样的:
- 用户浏览网站
- Windows 身份验证发生
- 应用程序检查此 AD 用户的用户名和密码
- 如果找到,检查是否有效
- 如果有效,继续
- 如果无效,请询问用户名和密码
- 保存并继续
- 如果未找到,请询问用户名和密码
- 检查直到有效
- 保存并继续
- 检查直到有效
- 如果找到,检查是否有效
第一个问题是,我不知道在哪里存储数据库连接的用户名和密码。
第二个问题是,我不知道去哪里查资料。
据我所知,第一个问题有两种解决方案:
- 将数据存储在 Active Directory 中(使用 custom attributes)
- 将数据存储在外部文件(文本、db)中
我不能使用 Oracle DB 本身,因为我需要一个用户来查询用户信息,这在这种情况下没有意义。
第二个问题其实是我主要关心的问题
我应该把检查用户名和密码的逻辑放在哪里?
我在网上查了一下,发现了以下选项:
- Using a global Action Filter(重定向如何工作?或者应该只使用modals 吗?)
-
Using a Middleware(虽然不知道从哪里得到
app)
归档上述结果的最佳做法是什么?
【问题讨论】:
-
这是一个内部网站吗?如果他们没有登录,他们如何通过 Windows 进行身份验证?
-
是的,它是一个互联网站点。 Windows 登录已在标准 mvc 应用程序中“处理”。
-
您能补充更多细节吗?我有一个带有 Oracle 数据库的 MVC 项目的代码,看起来很相似,但您提出的问题在上下文中没有意义。如果您使用 Windows 进行身份验证,那么真正的问题是他们的用户属于什么 AD 角色?如果他们没有查看应用程序的角色(权限),那么您不需要他们的密码,您需要阻止他们并要求他们获得使用应用程序的权限
标签: asp.net asp.net-mvc oracle authentication