gpt4 book ai didi

security - MVC4 Web API 防止使用相同凭据的多个同时登录

转载 作者:行者123 更新时间:2023-12-03 05:10:30 25 4
gpt4 key购买 nike

我正在开发一个关于 ASP.NET MVC4 和 WebAPI 的项目,其中一切都将通过 ajax WebAPI 调用进行。不出所料,我的项目中从登录系统开始,所有的业务逻辑都是在WebAPI上实现的。

我需要解决的场景与用户登录有关。我已实现并正常运行。但新的要求要求我在现有的 WebAPI 登录系统上实现一种安全机制,以防止同时使用相同的凭据登录系统。​这里我必须实现的是,我必须包含给定凭据的独占登录,以便当某人使用该凭据登录时,其他用户无法登录。

如何解决所有场景,例如检测用户是否已经登录/检测用户注销,以便凭据现在可以用于登录​​,其中还包括用户不当退出由于浏览器崩溃或意外关闭或网络断开而导致系统损坏。

我该如何实现这个?我没有使用任何成员(member)提供商。身份验证是针对 Active Directory 完成的。

最佳答案

由于您将表单例份验证与 Active Directory 一起使用,因此只要将 ActiveDirectoryMembershipProvider 指定为提供程序类型,您仍然应该能够使用常规提供程序方法。在您的登录方法中,您可以使用

var user=Membership.GetUser(userName);
if(!user.IsOnline)
//Do some login stuff

在您的网络配置中,您需要具有

 <membership defaultProvider="ADMembershipProvider">
<providers>
<add
name="ADMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"
connectionUsername="MyDomain\MyADUserName"
connectionPassword="MyADPassword"
enablePasswordReset="false"
attributeMapUsername="sAMAccountName"/>
</providers>
</membership>

只需填写您需要的正确部分,它就应该可以正常工作。

确保您还有 AD Controller 的连接字符串

<add name="ADConnectionString" connectionString="LDAP://MyADMachine/DC=MyDomain,DC=MyTLD" />

关于security - MVC4 Web API 防止使用相同凭据的多个同时登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15195086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com