我已经创建了一个表单身份验证应用程序我有User表并创建了自定义成员资格提供程序。我的用户表与其他表有关系,例如角色和权限。
我将其更改为使用Windows身份验证。它看起来很简单,但我不知道如何仍然能够从我的表中读取权限?有些表与User表有关,需要用户ID,在这做什么?我应该打破外键吗?
如果用户从局域网访问该页面,他/她应该自动登录,但如果他们通过互联网访问该应用程序,我应该允许他们登录?这该怎么做?他们应该使用哪些密码登录(活动目录或我的用户表)?
我希望我能得到简单易行的答案。
此致
答案 0 :(得分:0)
如果您使用Windows身份验证,系统会提示用户输入凭据以访问您的网站。你将无法阻止这种情况。在经过身份验证之前,他们甚至不会访问您的代码。
我们使用SSO(单点登录)完成了类似的事情,尽管我从未将其与Windows身份验证联系起来。这个想法是你有两个共享用户凭据的应用程序,如果你登录到一个,你就登录到另一个。第一个应用程序将是您支持基于表单的身份验证的普通应用程序。第二个是仅进行Windows身份验证的应用程序,然后在成功登录后重定向到您的正常应用程序。由于您已经过身份验证,因此普通应用程序只需创建标准身份验证cookie并将您带到应用程序的主页面。
通常,这些工作通过在URL中传递令牌,然后您可以通过反向通道将其兑换到SSO服务器(或者在您的情况下是Windows身份验证服务器)以确认令牌是可信的。如果成功兑换了令牌,则对后台频道呼叫的响应包含用户名和其他相关详细信息。
该过程的草图可能如下所示:
答案 1 :(得分:0)
在您的控制器中,您可以使用User.Identity.Name
来获取用户的AD用户名。然后,您可以向users表中添加一个名为ADUSername的字段(或更新现有用户名字段中的值),以便您可以将登录用户链接到数据库中的现有用户记录。
您无需执行任何操作,如果用户从外部网络或任何不在域中的计算机访问它,则浏览器将弹出用户名/密码提示。
< / LI> 醇>