我正在研究ASP.NET MVC 5 Web应用程序,我正在对LDAP服务器使用表单身份验证。
以下是登录操作方法: -
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
MembershipProvider domainProvider;
domainProvider = Membership.Providers["ADMembershipProvider"];
if (ModelState.IsValid)
我们的web.config
文件中的相关实体,它连接到LDAP:
<providers>
<add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=4.0.0.0, 
 Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="TestDomain1ConnectionString" connectionUsername="ad.user" connectionPassword="***" attributeMapUsername="sAMAccountName"/>
</providers>
<connectionStrings>
<add name="TestDomain1ConnectionString" connectionString="LDAP://ad-Tgroup.intra/OU=T,DC=ad-Tgroup,DC=intra"/>
</connectionStrings>
目前我将domainname\username
存储在我们的日志表中,如下所示:
string ADusername = User.Identity.Name.ToString();
repository.InsertOrUpdateResturant(resturant, ADusername);
使用User.Identity.Name
可能会在近95%的情况下起作用,因为它可以唯一地识别任何用户,但另一方面,用户名可能会被更改(假设用户结婚或离婚)。所以我打算替换我的User.Identity.Name
并获取用户GUID。但我不确定MVC 5是否提供了获取登录用户GUID的方法。例如,我无法写User.Identity.GUID
。